Hi everybody it's Sam at Mixed Up Craft thank you for watching my tutorial today this is my last tutorial of 2017 so yeah it's been a good year I would say I'm really pleased with what I've achieved and done so far so I thought a nice way to end the year would be to do a calendar for the following year so I did do a calendar about six months ago and I really really love that one and that's um excuse me that's just numbers it's just the month and the year and it can be used year upon year upon year if you haven't seen that one I will share the link now for you so that's one alternative the other one is this one now those of you that follow me know that I live in China China do sell calendars and I can get them online but they're in Chinese in the stores and they don't have the western holidays that we would obviously have in our calendars and also I like a big calendar I like one where I can have an overview of the month I can write everything on so here I can write my tutorials when they're going up I can also fit birthdays in there you know when I'm flying to back to the UK things I need a nice big calendar so I've made my own up this is a proper DIY project I've printed these off as free principles from the internet and I'll share all those links on my blog I've made all the letters from the we are memory keepers mini alphabet punch board which is brilliant so I've done that and I've kept this gold theme I've done little elements so obviously February the month of love and and so on and so forth and I've gone through them there which I'll show you in more detail but I just wanted something that was going to fold flat if I need to move it around and then it stands up perfectly and then each one can flip over as I move on to the next month so this is really really good it fits purpose perfectly for me so for my needs I need a nice big calendar so let me crack on and show you how we made it okay so you are going to need I've got lots of bits and pieces here so this is this wonderful mini alphabet punch board that I got from we are memory keepers I'm not going to be showing you how to use this today I'm going to do a separate tutorial for this but this is what it looks like and this is the book that you get with it with all of the alphabet and how to cut each one out so it's brilliant okay so that's what it looks like I'll show all the links and as I said I will do a separate tutorial on that so this is a proper DIY calendar for the reasons that I mentioned so this is all the bits that you're going to need the paper pack that I've used is this one here which is do cross paper mania capsule elements and it's their pigment paper pack 36 and the pack is exactly the same weight and size as the love Santa one that I used over Christmas this is the 12 by 12 and again you can see the other kind of styles that you get so I really like that one so I've already precut everything and I have done it all around this printable that I got off the internet and again I'll show all those links for you so you know I'm showing you the process and how to put it together you can adapt it to any size that you want and any design really that you want this is like I said proper DIY so I have got here a piece of eight and a quarter by 11 and five eights or 11 and three quarters so it's just your default A4 paper but you can obviously use the letter paper size as well you just have to cut down accordingly then the paper here this is the one that I'm going to do on top so I'm going to do July why July I left to the last I don't know but that's the one I'm doing and this sits nicely in the middle of this giving you a nice border and this piece measures at seven and three quarters by 11 and a quarter okay so that's going on there then that's obviously my printable now what I've done is on each one as I briefly showed I've cut out wherever there were no more days because you know they have the blanks along here just to fill it up look cut that out because what I'll be doing is sticking this on here sticking this up towards the top left hand side there and then I pre-cut the shortened word July or jewel and that is going to go inside like so okay I could have fitted I could have fitted I could have fit all four letters on this one but I wanted to keep it the same throughout so they're all just shortened words so that's going to go there and then I've got to go on top of that I've just die cut some little flowers which I'm going to pop like so just to decorate that one up and I've got some little embellishments there as well so I'm going to go along and just get all of that stuck down okay so there's that page all done you can see there it's lovely those letters look really nice and I've put the little embellishments on there as well on the flowers and everything so that one is done so I've got a load here that I've already done so these are all ready to go now what I'm going to do is just take off these ring binders and I picked these up I've used these before in my perpetual calendar these are actually from the same pack still left over pick them up from Walmart you get a box and they're no more than a couple of dollars a few pound and I'll share all the links and you get a variety of sizes there as well so you don't have to have three I've found four too much is that same thing four was too much too I didn't maybe feel was enough because of the size of paper that I'm doing but I guess if you're maybe a bit smaller then you could just have two if you're doing 12 by 12 pieces because that would be even bigger and you could do that then you would need to have four so I'm using three now what I've done is I've just measured in from the outside so to the middle part there it was two and seven eighths so you want to come in two and seven eighths from each of the sides here to give you that these two out of ones and then for the middle one again it was just two and seven eighths or if you just mark the middle point of the two that you've done just mark a middle point and then do that whole punch those then what you need to do is you don't need to measure every one or you can do then it's put the one that you've pushed the holes out of and just grab your hole punch and basically just line it all up make sure they're completely in place and just put the hole punch back in the hole and just punch through and then you will get an exact because even if you use your pencil marks you know you could be just ever so you know a small mill out and if you keep doing that on every one then by the time you've done all 12 there'd be a considerable difference whereas if you do this and just hold each one in place like so you know now that that is exact as all the others okay so January February March April I love May maybe the bubble will be May June July and then August September October November don't really like the V it does a weird V in that thing and then there's December so they are all now done okay when you do your holes obviously if you're using the same size that I am you would have done them as I've done here I did come down let me just do that measurement as well yeah quarter of an inch okay but also bear in mind is that if you're changing the sizes of this just make sure that you've got enough room for your binders your ring binders to go through all of these all of this card it's a good inch maybe yeah about an inch thick so let me just line this all up just pop these back through again and you have to remember that they need to be able to loop right around so there needs to be like this quarter of an inch inside the ring plus this quarter of an inch inside the ring as it flips around so you don't want to be doing your hole really far down because it just won't turn it won't fit so have a play around on some you know some spare paper some scraps first until you're happy with what you've got and then take the plunge and do it so like I said I've got the perpetual calendar and I explain it the same in that one as well so there you go so that is my calendar base now and you know pages already so now on to the base done is I've got all the strong like not quite chipboard but the strong card that is the the top and the bottom sheets of the paper packs that I've purchased and I'm going to be sticking them together like so and then another two together like so so I've got four sheets of this now before you stick it all together you have to put these little inserts in okay these are going to be the hinges on each corner to make it super strong and then I've got the base here so depending on what paper what card you're using if you've got really strong card that isn't going to bend with the weight of all of that leaning against it then you will only need two pieces of this size that I'm about to give you okay so this measures at 12 by eight and three quarters so four pieces if you're using cinnamon so well I've got two pieces if you've got really strong like a chipboard kind of thing then for the base again I've reinforced that with two pieces that are going to go back to back again if you've got one strong piece then you only need one and that's four by 12 okay and then I have here the three hinges so these measure I've already put my score lines in so they're two by 12 and then I've just taken a little notch off of each end which I'll talk you through in a moment okay so I'll get rid of my scoreboard now so that's everything done so let's first of all grab one of our hinges these hinges were two by 12 and what I've done is I just scored at one inch through the middle there along that two inch side so just score straight down the middle at one inch burnish it okay and then with the folded side facing you you just want to cut a slight like notch off the corner there just to give you that kind of arrow shape it just means you won't get anything hanging out over the sides when we come to put it together so basically what is going to happen so this is the thing if you don't have two pieces if you're just using one piece and basically if this is your one piece you will stick this on the inside like so along there like that okay so you're creating the top part of our stand if we're using two pieces like I am I just didn't want to have that on show so this is going to go inside like that and then this is going to stick on top so let me remove that there so I've got this piece then I'm putting the hinge in and then I'm sticking that over the top and not only is it going to reinforce but it also just keeps it nice and tidy and it hides that piece so you don't see it if you've got 12 by 12 super strong card again and you know what you're doing you could do this as all one continuous piece you don't have to have the separate bits like I've done so I'm going to go ahead with my wet glue okay so you stick this one like so then you grab another hinge and you're going to stick this one along this side here okay so I'm just putting that one inside just holding the whole thing over there just so that glue sticks down okay so that's nice and stuck so I've got my piece there with the two hinges either side and then this piece here it's going to go right over the top there sitting nicely just to cover it all up okay so just go ahead and stick all of that down flip it over and grab your other two pieces or your one piece that you may have and again we're going to then fold this one keep one of these down on top fold this one over like so and then stick that on top and then again put your other hinge at the bottom there so you're up that one there that one there and stick that all down on top like so okay okay so that's that all stuck down so you can see now I've got this kind of triangle shape coming together here so now before we put the base on and I'll talk you through that piece in a minute grab one of your ones because what you want to do is put your whole punches in before we obviously put the base on so I've got this one here which sits over the top and I want to have it closer to the top and I'll have an even border so I've got about one eighth of an inch is it one eighth so even just a little bit more it's more like three sixteenths I just bring that out sorry yeah about three sixteenths and then the bottom if I just fold up one of the hinge or the hinges there so you can see if I'm bringing it up further to the top I've got a bigger gap here which is what I want okay so just make sure you bring it up so it's closer to the top so you've got because you just don't want it rubbing on the bottom which it won't if it's lifted off like that and then all I need to do is grab a pencil and just do a proper like I'm actually drawing around that hole because I don't just want to do a dot because otherwise my dots could be slightly off so actually draw around it so you can see there what I've just done okay and then I need to hole punch them so I've got this um cool device which cuts through really really strong materials and it's by X cuts I've used it in a few tutorials now and I'll share all the links and I'm basically just going to hold that over that hole and it will cut right through for me like so I'll just grab my popi tool and just push those out like so okay so you can see now and then if I just fold it over again grab my pencil and now I can draw through again getting exactly the same on that other piece okay and then I just want to again cut those out just push them through and this has gone really hard now because that glue's all set so this is a really strong base so now I have the holes on both sides ready to feed through once we come to put it all together so now I've got those two base pieces and this was a four by 12 and then I just scored at two inches along the four inch side here I just scored at two inches right down through the middle and then you just want to just burnish like so and they're going to sit one's going to sit inside of the other again with the hinge I bring one out here so it's going to be one underneath the hinge like so and then one on top just as we've done all the others and that will just hide it all and make it nice and strong and then also you need to bring so what I would say first of all is just stick half so just glue up to the halfway where you've done the score line so let me just do this one here so just put a splodge of like a loop like so okay and then I've got this other piece here and I'm just going to put it so on the right hand side so the left put it on this right hand side of the under piece if you're doing what I'm doing using like these scrap pieces so I'm only doing that half piece and then again I'm just lining that up all in place there so that's all nice and strong and then I just need to open up these two pieces again just put glue on one side for the minute and then this piece here is going to come over so you need to put glue on this hinge here like so and then kind of do this on camera so lift the base up sit the corners the corner of the hinge there that score line I'm sitting with the corner of the base just in there okay stick that down a bit mucky and then bring up this piece here so it's all concealed just kind of hold it in place for the minute so I probably made it quite fiddly because I'm using double layers of everything if you imagine this with just single layers this is a good way to make a really quite large stand so this is the only way I can see to make it and you can see now how it's all coming together and that when it's dry is going to obviously bend up and when it bends down that's the full kind of expanded width that it will open to and it will hold your calendar up nice and strong and then obviously when it's flat means you can just move it around and transport it like so so that's kind of in place and what I'm going to do is just bring it down even more flatten it and now I can just put all my pressure on there just to make sure that's all completely starved up all of my pages here so I'm just going to undo one at the time and you just want to grab your stand and just thread through each of those I can feel it starting to lift off the bottom already which is good there we go now I've spread out the back the stand underneath a perfect calendar and that is I'm so pleased with that you can see it there how it stands up it's a proper DIY it's proper makeshift and I love it it's what crafting is all about and it's perfect it's does what I want it to do it's the size that I need it to be and it's great to just kind of glance over and then I can just without you can just lift it up it's got plenty of free space there to kind of bend right over like so that will sit on the back and then you'll answer your next month and like I said if you are moving or traveling it folds completely flat so you can fit it into a file or your briefcase or something like that if you do need to transport it and again just move it over if it takes me to our next month so I am super pleased with that I hope you like this idea I will also attach the the other calendar that I've done I totally forgot the name from it it's gone from my mind but I'll attach that one as well at the end of this video in case you want to do something like that as well so there you go I hope you enjoyed this one have a fantastic new year and I'll catch you in 2018 bye


Multiple myeloma is a rare and incurable disease of the bone marrow and accounts for approximately 1% of cancers. Bone marrow is the spongy tissue found deep inside your bones. Here, stem cells are made and differentiate into cells of the blood and immune system. One type of cell of the immune system is the plasma cell. Plasma cells usually produce antibodies that are proteins our body uses to fight infections. In myeloma, abnormal plasma cells divide uncontrollably and begin to produce abnormal antibodies. These abnormal antibodies are called paraproteins. As myeloma is primarily a disease within the bones, many symptoms are related to the bone and bone marrow. These are known as crab symptoms and are defined as high calcium, meaning patients experience bone breakdown causing high calcium levels in the blood. Renal failure, also known as kidney failure. Anemia, also known as low red blood cells, and bone lesions and pain commonly in the rib cage, shoulders, pelvis, and hips. The treatment landscape of myeloma is very complex and can include treatment with three or four drugs at a time such as chemotherapy or immunotherapy. Patients who are eligible may also receive a stem cell transplant to treat their myeloma. Myeloma is a relapsing and remitting disease, meaning patients will start treatment and may enter into a period of remission. Remission means there is improvement or temporary disappearance of a patient's myeloma. During this phase of remission, some patients will receive either single drug maintenance treatment or undergo observation. Then, after some time, patients generally will need to restart a combination treatment as their myeloma symptoms worsen. This phase is called relapse. The phases of remission and relapse continue until eventually the patient's myeloma no longer responds to treatment. This is called refractory myeloma. Survival rates of myeloma patients have significantly improved over the last decade with the development of new and emerging treatments. Patients can now live between four and 15 years after diagnosis, depending on the characteristics of their disease, their age, and their overall health. For more information, check out the myeloma patients' Europe website.


So here we have the new X-T3, this is a very hot product, it is a very hot product. So it's available in black, it's also available in silver and you can buy body only all with a kit with the 80-55 lens. And so what is this lens here? So this is the new 80-60mm lens, F2.8, it's one of our red badge lenses. It's very wide. Yeah, 80-60mm, it's the widest constant zoom aperture we've got. But is it autofocus? Oh yeah, autofocus, all our lens, autofocus and weather sealed as well. And so this product is very exciting because it has a lot of new features, for example dust stuff like a huge burst. Yes, so you can either do 11 frames a second mechanical shooting and it can go up to 30 frames a second using the electronic shutter as well with a cop factor. So you can do silent shooting like those cameras like the Sony A9, which costs 4500, this can do the same but it's much more powerful. Correct, yes. So there's a lot of photographers, but also video people are interested in this one. Yeah. It has 4K 60. Correct and it's the first camera, the APS-C camera with 4K 60p. And you can see all the menus are some of the best menus in the market too, right? Absolutely. We've got our film simulation modes. We have the direct dials here at the top, which are easily accessible through video, bracketing, continuous shooting, and then you have the parts filter modes and panoramic. Here we have the metering on this side, spot metering and average is centre-weighted. But the cool thing is you have these direct dials here as well, where they can lock in, you press the button, you can change the shutter speed as well, and the same with the ISO ratings on this side as well. So it's the best kind of like handling in the market, right? I would say so. I think it's very quick handling because you can change your ISO, your shutter and your aperture, so you have the triangle here of different things that you can change very, very quickly. There's a lot of photographers that love it, they love this handling, this being able to... It's kind of retro camera. It's classic. Using an old film camera, for example, so people that talk about the handling and the capabilities of a camera, these are the three fundamentals in photography which you need to change quickly. Those are the three most important ones? Yeah. ISO? ISO, shutter speed and aperture. And aperture you're doing on a lens? On a lens. All the lenses have it? Yes. All the lenses. Yeah. All right. And the autofocus is improved also? It's ten times faster than the X-T2. We have a new sensor, new processor, and the new processor especially is improved in focusing very much. And it has something that Canon and Nikon don't know how to do, it's a dual card slot. Dual card slot. Why don't they do it? Ask them. Ask them, yeah. So right here, dual card slot, they're both UHS-2. Correct. So is that a secret? What sensor is this? Who's making it? Is it your design? It's our design, yeah. Are you going to ask me if Samsung make it? Yeah. Is it? No. Are you not allowed to say or you say no? No, Samsung doesn't make the sensor. I don't make it. I see all the rumors on the website but no, Samsung do not make the sensor. Who's doing the Fuji rumors.com? I don't know. It's not you, right? No, not me. It's not you. All right. And so it has mic input, headphone jack. Yes, all in the camera. And the Type-C is also used for charge? Yes. You can ask for the videos or anything directly on there. No, no, no. This is for charging. You can have an external power pack and use that. So how many people ask you to make the display flip on the side? Yeah, it's been a big criticism, let's say. People want the flip out screen. That's one of the things, right? And the battery is still the same as before? Same as before but because the sensor processor is less power hungry, we get more shots. And it increases about 10-20%. Or you can use a grip and you can have a double, right? Or more than double? Yeah, three batteries, so nearly a thousand frames. So just use a grip, you can have a very long video. Right. And then, so there's going to be some firmware updates a lot. Yes, I'm sure there will be firmware updates coming soon. Maybe some of the things people are asking for might get added, right? Potentially, yeah. The few things people are asking for example, I can just mention the FAT32 XFAT potentially or something like that. We're thinking about Fujifilm, we always listen to our customers and we listen to what goes on online. So if we can improve by firmware, we'll look at it and we'll do our best to improve that. But you can improve the hardware by firmware updates? Of course you can. So what's the price? So in the UK it's $13.49 only and the kit is $16.99. All right. How many lenses do you have on this system? At the moment now we have 20, 29 lenses and we have another three coming. So it's definitely the best APS scene? We believe so, yeah. It's the best APS system in the marketplace, yeah. All right. Cool.


How's it going everyone Caleb here with Layton sports cards? We're gonna be working on 2021 22 obsidian basketball hobby six box break number 16 Pick your team style. We're gonna read off the teams you do have in the break. Thanks again for joining in good luck Those I a B with the T wolves Brian B box Brian T wizards Brian H Nuggets CWM Kings Carson C Nicks Chung K Mavericks David J Blazers Jesse O Nets Ken W magic Kurt D Pacers Kyle C 76ers Marius S with the Rockets Matt L Heats Michael L Clippers Oriole C Hawks Patrick W. Cavs Ricky D Spurs Robert S Hornets Lakers Grizzlies and Pelicans Soco K has the pistons and the Raptors Shazid K Thunder Suzanne P jazz Tyler B bulls Tyler C sons Vaughn B with the Celtics and YL with the Warriors Good luck everyone. Thanks again for joining. Let's see what we got guys Here we go first one up there. He is the legend Joe flacco getting some TV time How about that Joe flacco getting some TV time? That's great as he should Super Bowl champion right there Tyrese Halliburton Deandre and Joe Weisskamp on the base Isaiah Thomas bronze to 50 Number to 50 there and tunnel vision to the mellow ball tunnel vision 1099 for the Hornets Lamello Pacers your autograph Roy Hibbert obsidian galaxy autograph Roy Hibbert. That's Pacers this time to 25 nice green auto Number to 25 And it's gonna be a roar signatures pistons Dave Bing Not a name you see often at all Detroit pistons on the Dave Bing auto numbered to 125 They've been very cool He does not make it in many checklists whatsoever. Let's continue along here. All righty Grizzlies jammer ends Nikola Vuchovitch bulls and Bobby Portis bucks on the base Kemba Walker nicks that's gonna be to 50 on the bronze And tunnel vision Russell Westbrook numbered uh to 75 that time on the purple Tunnel vision Westbrook Alrighty, we have a roar autograph to 75 tail Maldon You go to 75 this time thunder Oklahoma City And Pacers on the patch auto this time It's gonna be Chris Duarte number to 25 nice hit Pacers Duarte to 25 Little rpa action. There you go. Empty there. All right base cards of Herbert Jones Mike Conley and Akeem Elijah on rockets Christian wood purple there Purple is to 90 or excuse me. Yep to 99 on the purple And it's gonna be pitch black of Yanis for the bucks Yanis Anton to Kubo to 99 Pitch black insert very cool cards nice one box And guys keep in mind like I said, we have that nt and prism football mixer four box break That's got a few spots left flawless football had a few spots left and then leaf pop sentry 2022 leaf pop sentry Also has a few spots left. I'm gonna link the nt and prism. It's down to nine to go now Check that out linked in the chat tiered random team style Right there for you nine to go See we got on the ink Celtics volcanic autograph four of 35 grant williams Celtics and for the jazz Uh, you saw jazz ruddy go bear autograph galaxy ruddy go bear four of 25 They go jazz to 25 Let's keep it going three boxes left here Geez. Okay desmond rider looking pretty good here in his preseason action tonight for atlanta five for five in the red zone now with his squad Nice to see that All right pascal siacum base and bead base and the cell base Aaron wiggins, that'll be green there numbered to 25 for the thunder nice green And d'angelo russell purple to 99 t wolves All right, we've got autograph thunder Uh, number to 75 jeremiah robinson url Thunder to 75 And another aurora autograph 18 of 75 larry johnson. There you go. Nice card Hornets To 75 again Two to go. Let's see a nice rookie here. So all right that ink. Let's see a nice rookie Let me be a nice little uh ssp insert. That'd be nice as well All right, here we go. Tyrese maxi moses moody on the rookie and derrick rosnick's purple to 99 to marge rosen And a shekelo neal lakers very cool card to 25 Nice one shack I think so mikey. I believe they're probably already over full tonight I'll be getting through as many as possible mike With that being said if you do place the order, there's a small chance of riffs tonight better chance. It's like early tomorrow 11 of 50 autograph rookie autograph omir yurt seven heats and for the calves rajan rondo autograph four of five On the rondo here you go calves Not too bad there Rajan rondo last one up It feels like most nights we go live personals are full or very close to Feels like that at least Last one up beauty there See we got guys Bradley biel there. That's wizards Quintin grimes nicks kelvin johnson spurs It's gonna be a kelly ubrey jr. Hornets on the blue flood These cards look crazy. They are not numbered They are beautiful cards though as you can see Hornets on the kelly ubrey jr Blue flood not numbered And we have a magnitude Bradley biel magnitude there that'll be number two ninety nine wizards Redemption there on the bottom First though we have calves moses brown autograph to 149 Yo calves let's see what we got in the redemption. It's gonna be a big way to close it rookie jersey ink kade cunningham pistons boom big card to close break number 16 There you go detroit Great hit there congrats on that sick kade rookie jersey ink Very very nice hit for yasaka. Okay That's gonna be awesome, man That it's gonna be awesome What a way to close it guys congrats on that Uh, let's do a recap here of the hits. We're not gonna show that one again in the recap You just saw it there congrats saco We have autographs calves moses brown brajon rondo Uh heat omer yurt seven larry johnson hornets germire robinson erl funder rodigo bear jabs grant williams celtics theomaldon thunder christ duarte pacers Pacers as well roi hirards and a dave bing for the pistons. Thanks so much everyone. Hope you did enjoy it We got uh, uh, excuse me optic coming up next tonight optic basketball 2020 21 so that's cyan and jaw. Good luck all


Hi, I'm Joy Elam, DAV National Legislative Director. Dr. Stone, thank you for taking time to participate in this very special forum. I know how busy you are for caring for our nation's veterans and managing the veterans' health care system during the pandemic. As you know, DAV is celebrating an important milestone this year, our 100th anniversary, a century of serving our nation's ill and injured veterans, for which we're very proud. Like most large gatherings, unfortunately, DAV's National Convention was canceled due to ongoing public health crisis. However, given these uncertain times, we thought it was especially important to provide DAV members an update on the status of VA health care services for veterans using the VA health care system and what's ahead. The COVID-19 pandemic has affected every aspect of life in the United States, particularly our nation's health care institutions. In March to keep everyone safe, the VA had to quickly pivot to alternative health care delivery options to care for veteran patients. VHA did an incredible job quickly expanding telehealth services and ensuring enrolled veterans had access to their doctors for routine care, medication refills, and treatment for COVID-19. Dr. Stone, could you please give us an update on how things are going, lessons learned over the last few months, and what options veterans have today for VA care? Well, Joy, first of all, thank you for inviting me to do this. Thank you for the support that you and DAV have shown throughout this in some pretty difficult days as we've worked our way through. Congratulations on the 100th anniversary and what a great organization representing, I think a million of us that are disabled veterans and we appreciate all you do in the role that you've taken and frankly just the collegial nature that you've worked with us through this and as we tried to make things better. You know, we began working with this pandemic back in January. It was actually the end of December when we began talking to our emergency operations people about this new virus that had transmitted from animals to humans. And then in early January when the virus first went human to human is when we stood up our emergency operations center. We have worked hard to make sure that we had appropriate access to health care for our veterans and remember that we do about 300,000 visits a day normally. That dropped to about 100,000 visits a day and remember that those other 200,000 still needed some sort of care and so we've had a tremendous increase in telemedicine. We've had a tremendous increase in telephonic calls and we've been working hard to make sure that everybody has gotten cared for well. I'm very, very pleased that throughout this urgent health care needs have been cared for in the same rapidity just as quickly as we were doing before the pandemic and it's a great testament to the creativity and innovation of the VA workforce as they've gone through this. So today we're back up to around 170,000 visits every day face to face. Our surgery has recovered to about 70% of what it was before. Our ERs are just about as busy as they were before and urgent care out in the community which was a new benefit for us as veterans had dropped off very significantly and that has come back up to about 80% of what it was. Great. Well, I can attest as a veteran who uses the VA health care system VA did not miss a beat right in March. I had no scheduled appointment. I thought it would likely be canceled but no, they reached out. Everything went fine and had a great visit and felt very good that I was able to keep that and not postpone any needed, you know, care. You know, Joy, that's one of our greatest concerns is that we don't want veterans to put off their care and we recognize that there are veterans that feel uncomfortable or have chemotherapy, things like that, that they're uncomfortable going out or coming in and we need to work through with that. You know, there's another area of great concern for us and that is our caregivers. You know, our caregivers have had a tough time going through this and we have almost 20,000 families in which there's a caregiver for one of our disabled veterans and we're working hard to make sure that there's appropriate respite for them, that they have appropriate supplies and that we're sort of watching for every possible complication that might occur in trying to interrupt that. Sure. Well, I know caregivers is a really important issue to DAV and DAV members, so many of them have a caregiver and wanting to make sure they're safe as well. Is telehealth still the best option for veterans who may be at really high risk? Well, I think we can mitigate risk face-to-face but yes, telemedicine or video visits are a way in many, many cases for veterans to be able to get care while not taking the risk of going out of their home or coming into the medical center. We are very pleased though that at every medical center there's a pre-screening that's done and once you get through the pre-screening then we've worked hard to make sure there's appropriate distancing within waiting rooms so people aren't waiting too long that we try to bring every service to the veteran in the treatment room so that people aren't having to move around the facility like we did before the pandemic when people might wait in a waiting room for pharmacy or in a waiting room for laboratory. So we're working hard to make sure that we mitigate that risk but video visits have been very, very popular with veterans and are up very dramatically. The beauty of telemedicine for the VA was that we already did 2 million telemedicine visits a year for our rural veterans or veterans that they just wanted to be seen that way so our ability to expand has been really dramatic. The other thing that's little known is we do a lot of telemedicine in intensive care. There's a shortage around the nation in all hospitals of intensivists that care for critically ill patients and we have multiple telemedicine hubs for intensive care and we've expanded that fairly dramatically during this pandemic. That's great. I think that's a question all veterans have is that if I do get sick is VA going to be able to take care of me? We're going to have enough beds. We know there were a lot of challenges in the community with regard to some states even now that we're experiencing high levels of COVID and I think veterans would like to hear if they get sick can they count on VA? Do they know they're going to have access to the critical care they may need? So we operate about 10,000 med surge beds about 1,500 ICU beds. We reconfigured ourselves and actually grew by over 4,000 beds early in the pandemic. Because of that we were able to offer 1,500 beds to critically ill Americans that were not veterans and I can tell you that as of today we're in very good shape when it comes to bed capacity, ICU capacity. We also purchased a mobile ICU unique in the world and it is now in Oklahoma City and there are 12 veteran patients in that mobile ICU because we knew that Oklahoma was an area that was struggling for hospital beds across the entirety not just VA but the entirety of the system and as such we've been able to decompress the beds in the Oklahoma City and the Muscogee VA hospitals. That also brings up the point that we've been able to take veterans who are infected with COVID out of the state veteran homes run by the states but there's been some pretty high profile outbreaks of COVID and we've been able to bring many of those veterans into our hospitals to care for and to work to save their lives. That's great. We know as you mentioned how hard hit some of the community care centers, living centers were internally VA has the community living centers. How were those veterans affected? We know there was maybe some limited ability for people, visitors and such. Is that still the case right now just to maintain their safety or has that changed? We operate 133 nursing homes. We call them our CLCs, our continuous living center. These have about 8,000 veterans on any given day that are housed there that call that their home. We are very, very pleased with the fact that our infection rates have been dramatically lower than other nursing homes around the nation and the state veterans homes and it is because of the very robust physician staffing as well as very robust nursing staffing that we do. Our patient to nurse ratio is much more like an acute care hospital and because we run it in that manner our ability to do infection control to understand how to put on and take off protective equipment, how to isolate patients and you know very early on in this we thought we could run COVID positive and COVID negative hospitals and CLCs. It is not possible to do that because so many people come in from the outside with COVID not even realizing it and we're able to run COVID positive and COVID negative neighborhoods and in those neighborhoods of a facility we're able to protect people and been very pleased at how well we've done. In fact we've done work in supporting American nursing homes and literally hundreds of nursing homes across 47 states. The most painful thing that I think that we have had to do is to cut off visitors for those veterans and especially those veterans with dementia or cognitive decline really need visits from their families and we had to do that because we had to protect the veteran population and I think if you were talking to the secretary he would tell you that that's one of the most difficult decisions that we made very early on and it was tough for many many families. We've been able to work through through the gracious support of many of the of the great industries that support us with some iPads and things like that we've been able to do electronic visits but there's nothing like having your family with you and it's still been a tough part of what we're doing is the limitation of visits. I think I saw a message from VA coming out that maybe volunteers would be allowed coming back at some point you know their role has been so important and many DAV members are volunteers in the facilities. Do you see that happening in the near future? I do in fact on Wednesday two days ago I was just up in Chicago North Chicago at the Federal Health Center up there that's a combined Navy and VA facility and I was actually surprised to see two volunteers there that were helping do some screening and they're going through the same testing that our employees do that are doing that kind of job but it was great to see volunteers back in the facilities because it's such an important part of connecting our community of veterans together. Our members have really missed being able to do that and they want to help out wherever they can so I know that's a welcome some welcome news for them if a veteran needs a test or feels you know that there might be becoming sick or might be COVID positive and they want to find out just to make sure what's your best advice should they call the VA Medical Center first or do they just need to go in? Yeah they should if they're not sick or think they're in the early stages of sickness they should call their primary care team and their primary care team will help them through the process of being tested or not. I think though that if they're really sick and they're having trouble they need to come into the ER in one of our institutions or go to urgent care and get through that process of being taken care of the faster we get at this the better and helping them through and so what one of my biggest concerns is I don't want people putting off care because of fear of coming in so a phone call first contact your medical center and if there's appropriate time to do that but if you're really sick let's get you into the emergency room where we can work through every one of our emergency room will have a screening outside of the emergency room to make sure the potential COVID positive from the COVID negative patients that's great I think that will be reassuring for veterans and I think VA's also put out and you've talked about they'll probably be a temperature check mask wearing in the facility social distancing even having veterans maybe even notify them from their car when they get to their appointment so they're not having to be in the facility to come in when their appointment is when they're ready to be seen yes all of those things are true and just like you and I are wearing a mask just like you and I are socially distant all of those things will occur in the institution or in the CBOC if they're going into a CBOC all of those things will occur in order to protect us and also be aware that unless you need a assistant to be with you for a visit for whatever reason your visitor or someone who might come with you will wait outside in order to protect everybody in the institution just trying to keep at a minimum people who really need to be there and to keep everyone safe just two last quick questions on the healthcare points how quickly are you getting tests back or does that differ at different locations we have rapid tests for the sickest patients and those will come back within 45 minutes we have another series of tests that come back in five hours and then we have some that come back 24 to 48 hours later but we are still sending out to some states in some visions and those can take two to three days to come back we have just been going over those numbers in fact today I'm going to go over some of our testing numbers we are trying to become completely self-contained for testing but as you know in different areas of the country testing is run a little differently and so but our idea is to get for the sickest patients that we can get testing back as quickly as possible great another issue I just wanted to bring up because I know a lot of veterans this is a really uncertain time and some veterans might be struggling due to the isolation just you know the stress of everything happening with COVID but VA has really emphasized that addressing your mental health is part of addressing your whole health and I know that is an important piece especially during that period what can veterans expect is VA doing any special outreach to veterans to make sure they are continuing if they were had mental health visits that they were doing routinely how about the vet centers are they still seeing veterans what's changed or what's happening there so we've done very significant outreach with the vet centers in fact we put the mobile vet centers on the road into many communities and they've moved around the country and over the last many months they've gone to some of the most hard hit areas to reach out and they've touched over 10,000 veterans as part of that outreach in addition when appointments started being canceled either by patients or by us in mental health one of the taskers that went to all mental health teams was to reach out to their veterans that their appointments were being canceled to make sure that they were okay and intense isolation and the stress of potential job loss is something that we worry about a lot and we know that veteran unemployment was down in the low 3% and has jumped up to almost 10% and has now come back down to 8.8% but that financial stress adds to the social isolation and if there's anything we talk about today that is important this is absolutely the most important if you're struggling call the crisis line call your care team come into one of our ERs or the urgent cares to really talk to us and let us get re-engaged with you so that we know that you're well cared for and we're really very concerned about lots of capacity in our mental health units we've been very careful with protecting people in those units from COVID we've had very few problems and it remains a very robust delivery system for mental health and the vet centers have been an important front line effort for that now in the vet centers are still doing face to face visits if the veteran wants we can also do that as a video visit or a telephone visit great well that's good to hear because I know when we interface with our veterans or members who call DAV we're making sure we always check on our veterans make sure that they know VA is open, ready for business if there are mental health issues make sure that they reach out to me or reach out to VA directly so that's great news last series of questions looking at the upcoming flu season there's been a lot of discussion just in the news that we have a potential for a really difficult period coming up with both the flu season and COVID just still challenges in the country that we're facing in terms of reducing the spread of COVID could you just talk a little bit about what's VA doing to prepare for that what do you see for the months ahead so two respiratory viruses in the community at the same time that are as severe as influenza as well as COVID is just unacceptable and we must do everything we can to protect veterans with immunization last year we had over 4600 admissions 600 admissions to the ICU for the flu if we add that to what we currently have for COVID it'll put us in a very difficult situation and put America's veterans in a difficult situation so we have ordered extra immunization for influenza we will begin distributing that next month for this and we also mandated for the first time that all of our employees receive immunization unless there's a medical or a religious reason that they shouldn't but we must reduce the amount of influenza now there is good news compliance with mass and we as veterans are pretty good at following orders our compliance with mass we think as veterans is higher than some of the rest of the American population isolation or social distancing will help reduce the amount of influenza but more important than that it is getting your flu shot in a timely manner will protect us so we're hopeful we've been working for about 3 months now on the influenza campaign and you'll begin to hear more about it and we'll need your help to reinforce this to make sure we get people in there's lots of places you can get your flu shot from local pharmacies are able to do this throughout our system and our urgent care system that is out in the commercial network is able to do so that's great and I know we'll be happy to help push that message out since VA did go to the community at your local CVS or other pharmacies where you can get the flu shot because a lot of times we always went to the VA and made sure we just stopped they used to have them right there in the atrium so you could quickly get it without doing so I'm sure you're going to provide some instructions with regard to that going forward and we'll start that communication campaign over these next few weeks great the other last thing to ask about was research research is such a cornerstone of the VA healthcare system and we appreciate that it's so better and focused is VA involved in any research projects for treatment of COVID? we are, in fact there's no portion of COVID therapy that we are not involved in research and from development of the vaccine participating in operation warp speed to examining medications and innovative ways to ventilate patients who are struggling with breathing during their COVID infection in fact as you and I are speaking there's more than 80 studies here in the VA that are ongoing we were just recognized in the Swedish literature as being the innovators in how to decide when to put somebody on a breathing tube and a ventilator versus the advantages of not doing that and so I'm really proud of the system and how quickly it's stepped up we've broken down a lot of bureaucracy to get studies going quickly and we're really pleased at the work that's going on great well we expect nothing less from the VA always on the cutting edge I may add Dr. Stone thank you so much for taking the time today to talk to DAV members about these important issues I know that there is a lot of uncertainty for everyone these days but one thing is without question is clear VA doctors, nurses and clinical support staff are working hard every day to care for our nation's veterans often at personal risk to their own health and well-being and I know this pandemic touched you and your family personally and what an incredible responsibility you have for coordinating care for millions of veterans every day so on behalf of DAV more than one million members and our auxiliary we want to thank you and all of VHA employees for your commitment your dedication and your tireless efforts to care for those who served Dr. Stone before we close I want to provide you an opportunity to make any final comments anything that we might have missed that you would like to just share and make sure our members here directly from you well just I'd like your members to recognize what a great partnership there is between your leadership team and our leadership team and how proud we are of that relationship you've heard me talk many times we can't do this alone we need your help and we need the role that you play in helping to inform your members we're humbled to do this work our employees are very very proud to do this and proud of the role that we've taken throughout this unprecedented time in American history well we appreciate that we know again how hard you've worked and what a personal toll it takes to be on call I'm sure 24-7 for these months that have followed and but you've been a tremendous leader we appreciate your cooperation your collaboration with DAV you've been on all the calls trying to keep us informed as much as possible and so we really thank you for that so with that we want to make sure that VA employees stay tuned to view the DAV auxiliary virtual salute that we're going to do in place of our national convention on August 26th at 7pm Eastern Time and that can be viewed at DAV.org slash virtual salute and that will include honoring our awardees for the top VHA, VBA and NCA employees of the year and that's been a tradition and we didn't want to stop that and our leadership made sure that that's going to be a big part of our virtual salute and that we recognize employees in throughout VA that have really done a stellar job they've gone above and beyond and much appreciated by our membership so I hope that your employees will tune in I hope you'll have the time to do that and make sure that you see the recognition and how much we appreciate all you do Thank you Thank you very much


performance is real. Our human history reveals that people have actually accomplished things. Families have run farms, blacksmiths have fashioned an iron, people have dug their own wells and raised their own children. This introduces a course in human performance. Performance is not measured by what you do, it is measured by what you accomplish. In place of performance we are commonly taught how to get ahead of others. It is how winners are a little faster, stronger, or more knowledgeable than others. The lesson is that the way to get human power is to be better than others. I heard that the most powerful animal in the forest is the one where all others step aside when they meet on a narrow path. I pointed out that it wasn't the seven-ton bull elephant, it was seven pounds of ants marching along together. Overcoming others can indeed be a test of your power, but for accomplishment we work with others instead of bettering them. Our knowledge base starts with family, where even the determined schoolyard bully leaves the weaker child alone when in the presence of older siblings. They are likely to join in and the bully suffer defeat. We started formalizing our knowledge of performance in 1911, focusing on how to best accomplish productive results through employees. The first improvement was eliminating unproductive work, getting focus on doing only those things that contributed to performance. It was accomplished by the person in charge doing this to support the workers. This was also the start of performance management because people working in planned and coordinated efforts, each taking their part, achieve more than twice as much as workers performing as individuals. Workers who team became a lot more valuable to the businesses that employed them. This course addresses how to take effective part by your contribution, by your leadership, or by your initiative. It is lessons in teaming with others. Performance is beyond just employment.  It is a study of our human values and how you can decide on the acts you take based on achieving what you value. This is empowerment. It is giving you the tools to see the value we can gain through human effort and to bring others to join in when they come to see it too. People value what they own. When we share ownership, we can team. As Americans, this is our nation. We own its government and it is ours. We own our economy. We are the only party in interest where activities cost us, but we receive no value. It is waste. Improvement will be by eliminating that waste. Our knowledge base is vision and technique. It is being able to see what people can so value that they will come together to make it happen. It is communicating that vision to others. It is initiating and managing action as needed to achieve results. Our knowledge base includes recognizing where our present power is being wasted, where our efforts do not gain results. It isn't seeing values that we have not been receiving and how each of us can choose our own empowerment. But even that is not enough. You are the unit of performance, the only party in interest, and only you can value what you receive. We have many lessons that would divide us against ourselves, replacing action with indecision. You are not an id in competition with an ego.  You are not some master you establishing control over all the other views.  You are indeed the only party in interest when it comes to your actions. But you can see where accomplishment is best served by how you interact with other people, people who are like you in so many ways.


Welcome everyone! Welcome for today for Arbor Day 2021. Happy to have you here. My name is Tim Bull. I'm the city forester, the city of Sheboygan.  It's my job as a city forester to take care of the city's trees, to manage them, and it's a wonderful job. It's great. I mean, I get to be outside and look at trees every day. Does any of you kids, you like trees? You like trees? What do we like about trees? Paper. Good one. Any others? What do you like? Air? Yeah, climbing trees. That's wonderful. Yeah, good. Lots of good things to do with trees. So I work for this tree crew, right? And I also have two of my employees here, or my co-workers, Jim and Kenny. They get to play with trees every day too, and they're out there whether it's snowing or it's super hot and sunny, and they're really working hard out there. Cutting trees, pruning trees, planting trees, like we're going to do today. And also today, we have the mayor with us. I don't know if you kids have met the mayor before. We had Mr. Ryan Sorensen here, and he has a message he would like to share with all of us about Arbor Day. All right. Well, thanks everybody for coming on out. Let's give a round of applause for the Forestry Department. They do a lot of awesome work making sure that Chaboygan's trees are healthy and planted all over the city. So this is my... I'm wrapping up my second week. I just figured out how the printer works yesterday. And this is my second time here out at Maywood being mayor. I love it out here. I was on the board before, and today's a very special day. Today is Arbor Day, but it's also Dave Cookook's last day. So Dave wanted to thank you again for all the hard work and dedication that you've given to the city of Chaboygan and especially Maywood. So everyone, let's give Dave Cookook a round of applause for the years of service for our community. Thank you, Dave. All right. So we're going to make Arbor Day official. So I have a proclamation here. This is my officially second proclamation and second one for Maywood. So I'll be dedicating that. So I'll read some points here. So in 1872, J. Sterling Mortar proposed that the Nebraska Board of Agriculture set aside a special day for planting trees. And this holiday is now called Arbor Day and is observed all over the country, planting millions of trees across the United States. Trees can reduce erosion for top soils, provide energy for wood and heating services and moderate temperatures, help clean air and produce life generating oxygen and provide habitats for wildlife. And trees are a renewable source for giving us paper, wood for our homes, fuel for our fires, and countless other wood products. Trees increase property value, enhance the economic viability of our community and beautify our neighborhood. Trees whenever planted are a great source of joy and spiritual renewal. And Sheboygan is now celebrating 43 days of being designated a tree city USA and one tree being named a tree city of the world and by the Arbor Day Foundation. And we are the longest running tree city in Wisconsin. So now, therefore, I, Ryan Sorensen by virtue of the authority vested to me as mayor by the city of Sheboygan, do now proclaim April 30th, 2021 as Arbor Day. So Dave or Sam, I'd like to present you with this proclamation. So come on down. There you go. Congratulations. All right. So we're going to plant some trees now. Yeah. All right. Thanks, Ryan, Mr. Mayor. Yeah, so as the mayor said, we're celebrating 43 years as tree city USA and the city of Sheboygan is celebrating its first year as tree cities of the world. It's a new program that the Arbor Day Foundation started. And I'm happy to say that the city of Sheboygan is the only city in Sheboygan that's part of this new program with the Arbor Day Foundation. So we're in our first year of tree cities of the world. And in order to qualify, we have five criteria that we had to follow. So we have people responsible for trees, meaning myself, the tree crew, the tree board who makes decisions for the city trees. We have rules and laws that we have to follow managing trees. So we call those ordinances. We have budget allocated specifically for the care of our city trees. We know how many trees we have and where they are. We have an active and updated inventory. So on our tree inventory, I can see exactly every street tree we have, what's been done with it, what species it is, even the ones we're planting recently, we know when they're planted. And the last thing that we need to do is celebrate trees annually. So today, Arbor Day, we're doing that. We're celebrating trees. And what better way to do that than to plant trees? So today, we're here at Maywood to plant trees and we're going to plant sugar maple trees. Now, do any of you kids know what's so great about a sugar maple tree? Go ahead. Maple syrup. Perfect. Yes. So every year here at Maywood, they tap the sugar maple trees and they get the sap out of them and they boil it down. It turns into the sweet maple syrup that we enjoy on our pancakes. So we're planting four sugar maples here today that 30 or 40 years from now will be big enough to give us sap is help make maple syrup. And the planting here at Maywood has has is going on a lot. I mean, we got David Cookuck. It's his it's his last day today. He's retiring. He's he's been working here for 35 years and he's planted over 30 or he's helped coordinate the planting of over 30,000 trees here at Maywood. So I thought it would be great if David I hate to put you on the spot. But if you if you'd be willing to help me demonstrate the proper way to plant a sugar maple tree, I'd like to dedicate this one specifically to you and for your time here and your service and I want to thank you again. So we're going to go through the right way to plant a tree now planting a tree is the most or transplanting a tree is the most important thing that this tree is ever going to experience. You start a tree off wrong and it's going to you know, it's going to have problems down the road, but we started out right and it's going to be set up for a long healthy life. And that's that's what we're going to do today. And we're going to demonstrate how to do this one. And then when we're done, we're going to split up into groups and there's three more that that that you kids will be able to plant just down that way. Okay. Alright, David, let's get started. So we got a bear root tree. Right. So some of you might be used to seeing trees that are big and heavy and they have the dirt still on them. Well, this tree, you can see all the roots here. Now we've kept it moist and damp. So the tree's not going to die. The one thing about bear root is they can be sensitive if you let them dry out. But this one's ready to go in the ground and you can see exactly all of its roots. So you can see there's no problems there. And it tells you exactly where to plant the tree. You don't want to plant these trees too deep. Planting a tree too deep is the worst thing you can do for it. The roots need to be this first set of roots needs to be right at the surface just below the surface. That's the proper spot. And and and so what we'll do is here we'll look at this and we have this whole pre dug, but it looks like it's not quite deep enough. So maybe I get Jim, you want to come over here and help help us get a little deeper to David, David, you can help. I guess I'll hold the tree. That's what what's that? Yeah, that's true. Sam's taking over for David. So let's do that. That would be good. You're doing an excellent job. Yeah, let's take a look. I think that's going to be really nice. So yeah, we'll we'll tuck all the roots in and under this so they're all going to be covered. I'll hold it down and now the nice thing we did is we pulverized this soil so it should be fairly loose or we can get it in all around these roots fairly tight.  So with this fine dirt, it'll make it a real nice nice and easy for us to plant and it'll it'll be a nice happy spot for these roots to grow. Yeah, oh yeah, I need I need you guys help. Is this does this look straight? March, does this look straight to you? Should I go this way? This way? Right there? What about from this side? What do you think? I need to go that way? There? Right there? It's kind of like we're playing the claw game and you're telling me where to drop it. Oh, this is looking good. So, we'll just I'll just lightly compact some of this soil in there like I said to reduce those air pockets. Looking excellent, David. We still like how straight that is. Good from this way? Mr. Mayor? Okay, good. So now that we got the the tree the dirt over it, I think we should give it a little water before we put the mulch on and then we'll get the we'll put some more water on after the mulch. So, we got two buckets by each tree to make it easy for us today but we'll take we'll take one of these and and maybe David, I can have you put that on the tree and we'll be periodically coming back to water these you know over the next this whole summer really but it's very important to water when you're planting. Okay, we have a we have a bucket of mulch by each tree to make it easy again too. So, this this these wood chips these wood chips will keep you put those around the the base of the tree over the roots to keep that soil from drying out too quick and it can be you know the thing is you want about a three or four inch layer and you don't want to mount it up against the stem because because that stem needs to be open to the air but once we get about three inches then we'll just spread it out so it's so it's no more than three inches around. It's looking really good and now I think we'll we'll put the rest of the water on this other bucket on and and that'll that'll dampen the mulch to keep to give that at least a a damp start so then we don't have to hope it rains tonight right away. Okay so you kids we're all paying close attention right you know what you're doing it's going to be up to you guys to plant those other three. We'll split up and me and the tree crew will help you guys plant those other three trees okay. Thanks for being here for Arbor Day.


Graham, Chih-chou, can you speak a little about what your future plans are looking this year and beyond? Sure, Graham. I mean, I'm pretty much doing everything that I said I was going to do, and what I've been doing is what I'm going to continue to do. I said this a few times. I don't want to lift us up too much, but we in our discussions and discord and live streams and articles I've written in the last 15 years and videos, I mean, we knew rollout of this was coming with centralization of power capitalist power trying to accumulate more power and stomping on humanity, right? We knew this was coming, right? So as far as I'm concerned, I decided that since I knew, or I was guessing, I was placing my bets that these puppets were going to the bidding of capitalist power and trying to censor control information, food supply and all this jazz, right? So I knew we're in a battle, so I've adjusted my life accordingly to be as anti-fragile as possible and to share as much information as possible. So that's sort of what I'm doing. If there's anything specific, Graham, you want to know, let me know, right? I'll be happy to share, really. But I'm like, literally, I'm sharing as much as I can, as fast as I can, because I think it is urgent for people to make sure they are decentralized from our current economic and political system and everybody's working on creating collective organizations, communities, cooperatives, decentralizing themselves so they will be anti-fragile and they're not going to get burned or be cannon fodder for these maniacs, right?


Hi, everyone. Welcome to my talk stop reinventing operator wheels This is an introduction to controller idioms, which is a go-lang library that we wrote to make writing operators and controllers a little bit easier My name is Evan Cordell. I'm a software engineer at off said where we're building a distributed permissions database Called Spice DB similar to Google Zanzibar system. If you're familiar I would do want to mention before I get too far into it that I am an assume some prior knowledge of Kubernetes and controllers and operators and go-lang So if those are not very familiar to you, you might want to check out some of the resources before you watch this But let's just get into it. So all operators and controllers do pretty much the same types of work They might ensure that some resource exists in a cluster with a particular configuration Maybe creating a deployment in response to some API call Making a job making a service Deleting duplicates that it doesn't think need to exist Or they might do something like wait for some condition to be present Waiting for a job to finish a deployment to be fully available Service to have endpoints things like that Or they might need to start watching a new resource because It's been referenced by another object that it watches and it needs to start watching the new thing so it can pull down updates and Update its local cache with a representation of that API So there's these really common building blocks that we use to build operators. Those are just some examples But we end up writing them from scratch almost every time There's a lot of great libraries out there that help with some of the low-level complexity of talking to Kubernetes and Building a controller things like controller runtime operator SDK cube builder But we still end up rewriting these same basic workflows over and over again, you know, create the service You know, we we use a client to do that things like that and operators are Essentially state machines. They read the Kubernetes state from the API They make some decisions based on that state and then they do stuff based on it What's kind of interesting about operators is that they're really really big state machines And I kind of think that this is what drives our lack of reuse because when you have big state machines like this You're often using the previous states the previous context to make decisions about what to do So you might decide whether or not to create an object in the kube API based on other actions The operator is already taken based on new information it gets from events things like that And that can make it really difficult to reuse bits of a controller elsewhere So that's kind of where controller idioms comes in. That's what we're trying to solve How do we make the steps in a state machine reusable for a controller? But you might be asking why I'm talking about this why we're talking about it now. What's going on? So I mentioned this at the top, but we're building an open source implementation of Zanzibar called spice DB if you want to check that out To run that we also wrote the spice DB operator to run it on Kubernetes, which is open source You can look through it and then our hosted services We call us a dedicated is built on top of a set of additional operators that are currently not open source A lot of us are former CoroS red hat and operator framework alum So we're familiar with operators. We really believe in their value and they let us deliver software to our own users quickly and safely but because we're writing all these operators we kept seeing these same patterns across all of them and Trying to come up with a way to share them between all of our implementations. So that's kind of why we're doing this right now We're building lots of operators. We have experienced building operators And we want to make it simpler for ourselves and share that with others so now we're gonna actually jump into The basic idea here, which is to come up with an interface to let us break down big controllers big state machines And just talk about little pieces of them at a time This isn't just for the ability to reuse. It's also really helpful for things like testing And composition and that kind of thing, but I'm just gonna start with this basic interface handle Which probably looks pretty familiar if you're familiar with Golang because this is essentially the same as the HTTP server interface and This is gonna be our building block for making large controllers I did want to mention that this really isn't any particular framework specific You could do this with controller runtime. You could do this with client go or SDK, whatever you're you're using It's really kind of at a different layer than a lot of those tools work So if all of our little bits of a big controller are broken down into these small handle functions These handlers we still need a way to pass Context between them because we don't want to always Recompute all the data that we need we can and Controllers often have access to huge swaths of cache data to recompute state But it's not ideal. Ideally, we're not recomputing things all the time in every handler just to keep them decoupled for testing And so obviously Golang has this great context package that's used everywhere But now with Golang 118 we can build some nicer abstractions around those using Typed accessors so one of the things that controller idioms includes is this typed accessor library typed context that lets you create Keys that index into a context and let you pop out values of this particular kind This is not really operators specific at all But it ends up being really useful when you're writing handlers and you want to transmit values between them So in this case, I have two handlers one of them does some expensive computation Stashes that into a context and then in a later Handler we extract the value back out So it's probably not super obvious that these compose well and I would say right now. They don't I haven't gotten to that yet But you can imagine some sort of synchronization function that's calling these handlers You do step one handler one do step two handler two But one of the problems is that if we're using context like this to pass values between handlers This second call handler to can't access anything that handler one added to the context because it doesn't have the value back out And since we haven't now using pointers and we're not returning the context We can't pass handler to the context value So what we could do is we could do something like this We could just say okay Well sync calls handler one and then handler one calls handler two Which does work because now handler two has all the context that handler one had and can grab values back out of it You imagine the earlier example with some expensive computation done in handler one Now handler two can pull that back out without recomputing it But this does make it a little harder to rearrange and it's not it's not super different from just having a bunch of Functions that are not a standard interface right because it doesn't give me anything new and I have to If I if I want to move handler two to run before handler one after you range everything, right? So this is where the builder type comes in which is a Function that takes in a set of handlers and returns a new handler, which is maybe not too exciting but what this lets us do is Think about injecting the next handler that a handler calls dynamically in a way that we can rearrange later I'll search some examples. So it's not as nebulous so here's an example using a function chain, which is part of controller idioms which will First run the first builder to create a handler then run the second builder to create a handler and it'll run the two handlers In order passing the context in between them so that they do have the the values shared And you can imagine rearranging these two you'd flip them back around and do second builders and then first builders So the second one is called first And I can rearrange this without rewriting either of them Now the only caveat there is that they may have different expectations around what Values exist in the context depending on where they are in the chain And so that is why there's lots of helpers around Ensuring that the context has what you expect it to do and in a bigger controller. It's Not every step in a chain will depend on every other step of the chain So it makes it a little bit easier to do things like rearranging when when needs change So another example is the parallel helper, which does essentially the same thing as the chain function But in this case both run in parallel with the same input context So in this case, they don't actually aren't they aren't able to affect each other's context at all So kind of we fixed the problem with chain and now we've broken it again with parallel We we don't get the values back out of context. So I'm going to come back to how this is solved But another way that you can compose Handlers is via wrapping if I have some existing handler I can stick it inside of another handler and call it and then I can check and see if there's been any errors there Now the thing here is that the context That is modified by the wrapped handler isn't accessible from the wrapper And so there's some helpers in the same typed context package that helps deal with this problem instead of Just putting a value in the context To start with we put a space for the object in the context And then when we call the wrapped handler, it fills in the space that we made Which is a pointer and then now after I've called handler. I can access the values from the handler again later So this is also how you could deal with parallel values You can run both handlers in parallel but then they can put values back into Context boxes rather than contexts and you can pull those values out when you need them and then one other way that we can compose Handlers is via branching In this case, we have these handler keys that identify a specific handler out of a big set so you could do something like In this example, I have a Sync function that first looks at the object to decide if it's been deleted or not and then branches into two different Handler chains based on that decision. So this would let me have defined elsewhere like a full chain of If it's deleted handlers versus a full chain of if it's not deleted handlers Let's me keep those things separate rather than all jumbled in one big State machine essentially So there are these helpers for dealing with sets of other handlers and picking out the right one and giving them identifiers and things like that So now that we have a way to compose controllers and build them up out of smaller pieces We can also more easily talk about, you know, common patterns and encoding those with these libraries And that's kind of what the rest of controller idioms is the first bit is the basic building blocks to make things reusable and the next bit is Some actual patterns that we've identified that we've used multiple times that we think are generally useful So the first idiom is adoption This comes up a lot when controllers are trying to be efficient with the resources they watch So for example, you could write a controller that watches every config map in a cluster And then when someone references a config map in an object You will have that config map in your cache already because you're watching all config maps Most people don't want to watch all config maps both for like security reasons and then also just for space reasons That means you have to have every single config map in cache in your operator to work So instead you when you open a watch against the cube API You can give it a label filter and that will only send the objects down to you that match that label But then of course you have a problem where if the operator is not the one creating the config map It can't put that label on it. So it won't be in its cache So this is an issue for any resource that is used as input to a controller rather than as output And this is what we call the adoption workflow when Some custom resources created that references another object that's already existing in the cluster we first check and see if it exists and then if it does we add whatever the special operator label is The operator is watching and that brings the object into the operators watch stream and cache And now the operator can know that it's there and continue working with that object going forward Another one that we use a lot we called the component idiom And this really is just when the operator is in full control over some external resource that it creates in response to user input so user creates a custom object and then we need to create a deployment based on that object or a service whatever In that case the operator is creating it and it's you know has some uniqueness property It's one to one or many to one with the object the user created Generally life-cycled with it. So you might have owner references. It's really not supposed to be Shared with other controllers. This is a relatively common pattern that some operators use and so we've encoded this in controller idioms as well so that It will handle the kind of the dirty work of creating the object if it doesn't exist You know checking for changes via hashing and then deleting duplicate objects if it's created in a way that there could be duplicates for example This just makes it easy to make Controller that just ensures that a bunch of stuff exists based on some input object Another idiom we're calling static resources Which is when a controller is given some definition of an object and it just makes sure that object exists and matches exactly This can be really useful for bootstrapping if you have a controller that you know needs to create some default resources when it starts up This can be really a useful way to do that could also be some sort of Operator global config if you have something along those lines that needs to just always exist when the operator is running Another one is the pause idiom Where it can often be useful to Telecontroller not to stop entirely but to stop processing a specific object It's gonna be especially useful if we need to go in and do some debugging Deal with you know human operator needs stop it from doing something crazy that kind of thing We also have a self pause idiom, which is maybe not a thing that you should use Much if at all that's really just for if an operator can Definitely determine that it has no way to make progress on its own Maybe it's too expensive to pull for state changes for some reason in an external system or its rate limit or something Doesn't have access To something it needs then it could self-pause the object and that Not only sets the an annotation that will tell the controller to stop Watching it, but it will also add a condition to the object if you're using standard conditions block on the object and Report that it's paused and why and what you can do to unpun. In addition to the idioms We also have a set of Kubernetes utilities I was kind of briefly go over these I think they're They're really in support of everything else, but we have some basic caching libraries that wrap hashing and validating hashes There's some utilities for work key management if you're if you're using Client go probably not something you'd want to use if you're using controller runtime It has some common metrics to admit if you're using standard conditions, for example, this will admit a mitt metrics based on the conditions It does come with a basic controller and controller manager implementation if you don't want to use one of the other libraries like client go or controller runtime for that it does have a File informer which essentially works the same as other communities API informers, but it reads from a local file instead This can be helpful if you're trying to bootstrap some Local config or or you want to allow people to mount volumes into your controller and control the behavior in some way And it also has some helpers for CRD bootstrapping which make use of The controller runtime libraries for the same thing So that's that's kind of it. That's the the overall that's the what the problem is That's how we think about breaking down the problem and how we've built some abstractions to help with this At Oth said if you want to know more you can definitely check out the controller idioms repo repo and if you have questions or Ideas or you know with still early days if it's a lot of stuff We haven't identified that would be a great addition to the library. So if you want to add something there I think it would be a great opportunity If you want to see how controller idioms are used in practice I have a link to the Spacey be operator here, which is open source. You can look through how we use controller idioms all over that And then if you just want to chat or just get in touch we have a discord that you can come talk about it Or you can get in touch on Twitter So thanks for listening and Have a nice day You


Rydyn ni'n gwybod. Rydyn ni'n gwybod, ydw i'n gwneud o ddweud o bwyllfa ac yn fanbyrwyr i Ffaven 1.0. Roedd yma'r ddweud, mae gwirionedd mewn gweithio yn y UK. Rydyn ni'n gwybod Ffaven, mae nhw'n gwybod yma. Rydyn ni'n gwybod, mae nid yw'n gwybod, rydyn ni'n gwybod i'n gwybod i'n gwybod i'n gwybod i'n gwybod. Rydyn ni'n gwybod i'n gwybod i'n gwybod i'r ysgweithio'r 1.01 ar y dyfodol. Fabean is a facility for developing and running multi-tier server benchmarks across multiple systems. You can also use it for doing microbenchmarking as well. Maybe a specific component such as an FTP server or a HTTP server. This open source is developed by Sun and it's available at that particular URL, which I'll give you a reminder of later at the end of the slides. Fabean has two major components, the harness, which automates the whole process of a benchmark run and also provides a container for your benchmark driver code. Again, we'll look at some examples of benchmark driver code in a minute. We have a driver framework which provides an API for you to develop benchmark drivers, also services and tours and also provides a component model. I've also mentioned there's two main aspects to it but there's also analysis as well. Fabean provides comprehensive analysis of results and data it collects from the systems involved in the test. The best way to introduce Fabean is to show you some of what it does and what it gives you. This is a typical Fabean benchmark run. You'll see at the top here we have information such as the operations per second for this run, the number of operations that were run and where it passed or failed. Beneath that, you have several tables and two of the tables are displayed here. An important concept in Fabean is the operation. I'll mention operations quite frequently and an operation is basically a specific use case. An actor's interaction with a system, for example, a user accessing a web server or a web page. The two tables we have displayed here are the operation mix, which shows you the number of operations that were performed successfully, the number that failed and the actual mix that we had of that particular type of operation. What we're seeing here, this particular benchmark run was for a social networking application. For a social networking application we have operations such as homepage, login, ad event or event detail. They're all of these operations, specific user interactions with a system. Down here we have response times. We have response times for all of the operations involved, average, maximum, 90th percentile response time and standard deviation. Fabean also gives you a detailed results page with graffin of key performance indicators, things like throughput and response times. There are a few others as well about what the driver's done and what work is done to perform these particular metrics. Depending on what you've done in terms of deploying tools across the systems in your benchmark run, you'll get specific stats for each system. You can drill down for each system, look at statistics such as CPU utilisation or look at the NIC and see what kind of throughput is going through the NIC. That's the kind of stuff you get from Fabean in terms of the graphical display and the reporting. Fabean architecture, we have two major run-time components within Fabean. We have a master. The master coordinates all of the systems involved in the test. The other aspect of it, the other part of it, is the agent. We have several agents running on the other systems that are actually involved within the test. In this case, at the top here, we see a bunch of driver systems. They're actually JVMs. They don't need to be specific systems, so you may find these free running on the same machine. They're instances of a JVM. Each one has an agent, and these machines are driving load into the system on the test down here. This gray box contains the entire system that's on the test. We have web servers, proxy servers maybe at the front, and we also have databases, memcash de-instances, those kinds of things. All of those systems will be running agents, and Fabean can control them all through the master. You have to give Fabean certain information to get everything working. You have to provide information about all of the systems involved in the test. For example, the web servers, the application servers, database servers, memcash de-instances, reverse proctors, host port pairs for the most part. You also have to provide a benchmark driver, but Fabean gives you some samples you can use to develop that, and we'll look at some of the code that you would use to develop a benchmark driver in later slides. You also have to provide a configuration. The configuration data is details about what the run will do, how long it will run for, the number of simulated users, etc. Fabean gives you back some of the stuff we've already mentioned. It gives you a harness that runs all your driver code for you, that manages all of the systems within the run, that gathers the data at the end of the run, makes sure the statistic tools are running on all of the systems, brings it all together at the end and presents you the data in graphical and tabular form. It also provides you a driver API, along with all of the plumbing to run your Fabean benchmark driver. We'll talk a little bit more about that in another slide. You also get configuration screens where you provide all of the input data about the systems involved in the test, a couple of examples in a second. These are all also generated from a configuration file, a very basic configuration file that you provide, and when you deploy the benchmark, the configuration screens are all generated for you. An example of that is one of four tabs in a configuration. You see at the top here we have four tabs. The Java tab here allows you to configure the Java runtime. The driver tab is where you provide information about the run, how many simulated users, what the steady state time will be, how many driver agents will run, how many systems will be generating load, that kind of thing. This screen is the data service tab. This is where you configure all of the backend systems. In this case, we have a database server, a file store, and some Memcached instances, although we haven't provided any data about them. That just means we probably don't not use any on this particular test. We also have the ability to say whether we want to reload these particular resources at the beginning of each run. Also, we have opportunity to provide faban with information about where the configuration files are, where the log files are, and how to stop and start the services. Also, what tools we want to run for any particular given run. On the web server configuration tab, in this case, we are testing the Apache OLEO social networking application. We are using the Rail service and the NGINX service. In this case, we get two boxes, we get one for the app server, and we get one for the proxy server. Here, we are using FIN, this is the Rail service. We are saying we want to use the FIN back-ends. We are going to run 32 of them. The starting port will be 8,000. Here, we are saying we want to use NGINX, what the port is, and then we provide all this other information again about how to start and stop those particular processes, and where to get the log files, where to get the configuration data and such like. Also, again, we can provide information about what tools we want to run. Services and tools. A service is something that you want to run throughout the duration of the benchmark run. It needs to be in place before the benchmark can actually start. That could be something like a MySQL instance, initialised with a set of data that you've provided. You generally don't start testing with a raw database. You'll load a database up initially. It could also be the number of a service that provides like FIN instances, like we've seen before on the previous configuration page, or a service that initialises a file store with clean data for each run. It also provides a plugable infrastructure for you to develop your own, and it also provides a basic set of services and tools that you can use. I forgot to mention what a tool is. A tool is something like a wrapper around VM stat that will run during the steady state period of a run to measure specific statistics about the system, a monitoring tool, something like a memcash these stats tool, that kind of thing. A lifecycle of a favon benchmark run, where as far as services and tools are concerned, we start off with a configuration phase, and we end up with a post-processing phase. In between, we start off our run with a ramp-up period, where we're starting all of the load of threads, all of the driver threads to simulate the load. We're warming up caches and such like until we get to a point where we're in steady state, and this is a point where we want to actually do the measurements. We actually want to test or measure the performance of response times and the throughputs during steady state. What happens with a tool? A tool starts only in steady state, because you don't really want to measure the system while it's not in steady state. You wait to this point here, and then you start all of the tools. All of the tools will run until the actual steady state period ends with a ramp down here. Services have to be in place right from the beginning, so they start here, and they end in the post-process phase. Looking at the favon driver, oh, I do apologise. We seem to have run out of screen. So a favon driver is... Sorry? A favon driver is a Java class that's used to drive load to your system on the test. It's something you write. It uses Java annotations. It's basically a plain old Java object, but annotated with Java annotations provided by the favon API. It's basically a plain old Java object, so a favon API. It uses these annotations to define metadata and also define operations, which we talked about earlier. So an operation is a specific interaction with a system. It may well be that in this case you get a HTML page initially. You do the get, and then you load all the static information that you need to render that page, the JavaScript files, the CSS files and such like. You pull them back from the server. Then you scrape the HTML to find out what images are on the page and then you can load them from the server or you can load them from local cache if you're simulating a cache. Another example would be for a form data, HTTP post request, the response code may be a redirect in which case the operation may act on a redirect and redirect the user to another page. Not effectively viewing the page, but using the user itself. And it also validates the success of the operation. If the operation fails, it throws an exception and faban registers that as a failure. Down here we have an operation mix so you can't see this and I think it's quite a bit underneath it but you'll see it on the sample code. But an operation mix is basically the transition from one operation to another.  An operation mix defines how that happens. It could be a simple sequence like do this, then do that and then do that. A sequence is constantly repeated by every single user or it could be something more complicated and that's what we start talking about using finite Markov chains to simulate randomness within a system. But you can do all of that and you get that absolutely for nothing. It's a bit more complicated to programme that so this is a typical not necessarily typical but this is a faban driver class annotated at the bottom there I don't know if you guys can see it is the class itself, ui driver and then we have a whole bunch of metadata annotations that we provide. The first two annotations are purely metadata we won't need to go into those but they're the ones you provide to the system and then we provide a matrix mix and we mentioned operation mix is before on a previous page this could be something very simple it could be just a very simple transition from one operation to another or you can use some real intelligence in it and you can use a matrix mix this takes two arguments it takes an array of operations and it takes a mix which is a matrix and we have one row for every operation and one column for every operation and this allows you to define a state transition from one operation to another and also a waiting of what will be the preferred operation to run at the next stage the next operation run maybe we've got a heavy weight here that after we've run the home page we'll do an event detail and also using this you can actually prevent certain state transitions from happening at the bottom we have this thing a negative exponential and we're using this thing called a cycle time a cycle time is a space between one operation and the start of one operation and the start of the next you can also define a think time we're saying we want to run with a cycle mean of 5,000 milliseconds with a 2% deviation and we want it to be a negative exponential so Fabian will actually vary the cycle time between operations to fit a negative exponential response graph so some of them may be 25 seconds some of them may be 0 some of them might be about 5 and a couple of methods annotated so we have do home page which is a home page operation and we have do add event which is an add event operation we can say the maximum 90% our time automatic timing so Fabian will start the timing when we enter the method this one here is using manual timing we enter this method when we call this event and if that's given you any kind of interest please go here and find Fabian because it's really cool