Welcome to Access to Trader, the number one community for those who are committed to taking control of their trading in order to achieve success, profitability, and longevity. Thank you for joining us. Here's Dan Shapiro to help you find your edge, master your process, and own your future. Hey guys, leading everybody and welcome to a Monday edition of the access to trader.com Monday Update. Hope everybody is doing well. Hope everybody had a great weekend. Hope everybody had a good trading day. So before we start again, if you are brand new to the channel, thank you very much for spending a couple of minutes with us. All we ask is like, subscribe, share all that good stuff that can help out the channel to grow and kind of spread the word of technical analysis. So let's talk about where we are, right? So for the last two weeks, the Nasdaq 100 lost a little over 6%, right? Kind of a big deal. They rebounded today about a little over 1%. So before everybody starts taking out the noise makers and the party has to understand we're still down 5% from two weeks ago. There is a silver lining for this, right? We'll get to the silver lining here in a second. No doubt. The bulls on paper today put together a pretty good, pretty good day, right? The Dow rebounded 500 points. It's best day since June, which was great, which was absolutely great. The S&P was up 1.2% and the Nasdaq rebounded back 1.1%, which was very, very good. Did every stock rebound? No, not every single stock rebounded. We'll get to that in a second. Again, obviously you guys know which one I'm talking about because we traded every single day. And if you watch the update for pretty much the last seven years, we talked about that stock. Again, we'll get to that in a second. Here's the most important part, right? Here is kind of where we start this evening's update and going into tomorrow's session. Number one, again, kind of a quick history lesson. We lost a 50-day moving average, went to the 100, lost a 100, went to the 150-day moving average, lost a 150-day moving average, and we went all the way down to here, 342, the lows. Now, keep this in mind, this is roughly 25 points off the highs, excuse me, off the highs this in the last couple of weeks, hence the 6% decline. And today's rally, we rally to the 5-day moving average and got rejected. Well, now, why is that significant? Again, even if you don't know anything about technical analysis, everybody has eyeballs, right? Everybody's seen this orange line? Right, guys? Everybody's seen this orange line? You see what happens? What's happened in the last three weeks? Every single time it hit the orange line, right? It's the orange line fades, it's the orange line fades, it's the orange line fades, it's the orange line fades, it's the orange line fades, we just hit the orange line today and fade it. What's the orange line? If you're joining us for the first time, the orange line is the 5-day moving average. A lot of people don't acknowledge it, don't respect it, hell, don't even know if it's there. I've been using the 5-day moving average for many, many years and it represents to me the shortest, I mean literally, the shortest term internet or excuse me, interval of the stock market who has control of the 5-day, has control of the most short-term imbalances and that's a very good reason what we call it because of all the craziness goes on in the market. But so far, every single time we've hit the 5-day moving average, we got rejected. Even if you look at the opposite here, go to the opposite here on the way up. Every single time we hit the 5-day moving average, we bounce. So there's a method to this madness here. So what happens tomorrow if they can't reclaim today's channel, right? Well, we're going to go lower, right? We're going to go lower because again, it's not exactly a good thing what we're doing. Here's what the bulls need to do for tomorrow. Guys, write down this level on the queues. The queues need to reclaim 350-50, 350 and a half on the queues. That will reclaim the 5-day moving average and break this very impressive streak of rejections. This will also reclaim back the 150-day EMA. And if that happens, yes, we could have a multi-day, I don't want to use the word rally, but a multi-day potential for upward move back to this 353, 354 level that will correlate back to the 150-day moving average and the 10-day moving average that is crossing. So that's what the bulls need, right? Absolutely, that's what the bulls need. The bears need to get below this 346 level that was today's lows. And again, honestly, folks, I can't even 100% tell you that was today's lows. Why? If you're an active trader, you know what's been going on for the last two days in the market. There has been wicks everywhere. When I'm talking about wicks, yeah. They're talking about Halloween scary wicks, right? Look at the fight. This is real. Guys, this is what usually this would be all fake prints. This was real. This is a chart on Tesla. It finally stopped wicking out. I guess that's the word I'm looking for, a little bit after one o'clock. But this is what's been going on now for the last couple of days on any stock that's been trading with a major average, Shirange, NVIDIA, Tesla, Q's, Spies, whatever it is. These wicks have been absolutely real. And I talked about it over the weekend update that how can you trust the price action, right? If you're getting these fake prints all over the place, and the problem with these fake prints are, they're being demonstrated on the daily chart. So I'll give you an example today, right? The high today on Tesla was not 2,1241. We all know that. We watch Tesla every day. Did it get to 210, maybe 211, maybe? The stock did not go to 191. How do I know it didn't go to 191? Because we were short from 205 when we saw the runner. Believe me, I would have covered into this range. So there is absolutely a carnage of wick city everywhere. And the NASDAQ is finally aware of it. What's been going on for the last couple of days, apparently they've taken... There is a data feed issue, right? And that's why we've seen all these wicks. So they basically, layman's terms, took it from one server and put it towards another, okay? They're aware of the issue and I'm hoping, okay? Because at least when we saw Tesla now since one o'clock, it didn't have any wicks. I'm hoping this was the last of these crazy wicks. Because again, guessing where a stock is going to pivot, trying to figure out if that was a real chart print or not, is not exactly what I want to do for a living. And I'm sure a lot of you guys feel exactly the same way. So hopefully this is behind this, hopefully the NASDAQ fixed this issues and we can go on trusting the data points, trusting the data. Because if not, again, trust me, and I know for a damn well, nobody covered Tesla to $191 because it never got to $91. I think the low of the day was like $94.60, but because of these wicks, it's demonstrating on the daily chart now that the stock went to $191. So anybody who didn't trade today is looking like, wow, tomorrow if it gets below $191, no, $191 is irrelevant. $191 is a wick issue that the NASDAQ is aware of and hopefully are going to fix. And hopefully the price action is going to be fixed ahead of tomorrow's session. Because again, it's even tough going through charts. And the NVIDIA, for example, it never got to $22 today. It never did. Look at the wicks here on NVIDIA. If it didn't get to $22, because if it got rejected at $22, we would have been selling this thing to the 10-day moving average, right? We would have been shorting this thing to supply. It never got there. So again, hopefully a lot of you guys, it's not just from one broker. It's pretty much every broker is having this issue. Again, hopefully you guys did not get affected by this. But more important, hopefully going forward, this problem is going away. So going into tomorrow, let's look at the indexes really, really quickly. The indexes, again, need to get above $350.50 for a stage potential one or two-day push. The bears need to get below $346.00. If you look at the SPYs, let me look at the SPYs. Again, look at this wick. I give you my word that the spies did not trade to $413.00 today. I give you my word. It never got down there. It's going to be $412.00. It never got down there. But that's what we're showing here. The bulls need to get above, you know, roughly need to get above this $417.00, $417.30. You see, this is the five-day. It's kind of the same thing with the NASAC. You see, it keeps on getting rejected off the orange line. Rejected, rejected, rejected, rejected, right? So the bulls for them to have stage another potential day of rallying need to get above $417.00 and change to see if we could stretch this out back to the 10-day moving average, which is roughly $421.00. After the close, Apple is doing some sort of presentation, something, some sort of event. It's very ironic and very convenient. If you guys remember, the last two, three Apple events have been faded in the middle of the day. So what they did now was conveniently they're starting their event at five o'clock Pacific time. Why is that irrelevant? Well, because five o'clock Pacific time is eight o'clock Eastern time. Why is eight o'clock ECM important? Because the ECMs close at eight o'clock. So they're saying something stupid, right? They're saving themselves from getting hit after hours. And now they're just hoping that the futures are going to gap up, right? They're hoping the futures are going to gap up. So whatever they said on their presentation doesn't get affected. But very, very nicely played Apple. You guys are tops. But again, that's what's going on here. They are reporting on Thursday.  Tomorrow we have, let me see what's going on tomorrow. Tomorrow we got AMD. AMD is going to be the big one for tomorrow. We got AMD. We got Caterpillar before the open. Nobody really other major than that. You have a bunch of Amgen is reporting tomorrow. And then Wednesday you got Roku, Qualcomm, Yum Brands. Nothing really crazy there as well. Thursday is the biggie. We have Coinbase. You have Shopify and you have Apple, Starbucks, Moderna, but Apple is definitely going to set the stage for Thursday session. So how do we look at tomorrow's session? I look at it as if we can reclaim the 350 and a half on the queues I definitely like some charts that are setting up here. I'm trying to be very simplistic. I'm not trying to be very creative for tomorrow's session. Amazon, right? Amazon today first close above the 50-day moving average. Obviously it's one of the ones that had good earnings. If the market does rally tomorrow, I'm obviously going to watch Amazon. If they could confirm this channel here and confirm the 50-day moving average, it could make a push into this 135 level. Netflix today woke up as well, right? It still needs to get above this channel here, but if it could, right? If it could start reclaiming back the top of this range, the top of the supply, it can actually rally back as well. Let's look on the other side, right? If you've been watching the video and watching the broadcast, we've been talking about two stocks, specifically two stocks for the next leg down. The first one was Tesla. That was the big trade of the day. As you can imagine, right? I had a whole bunch of pivots set up for the downside today. Only one pivot confirmed to the downside and only one pivot confirmed to the upside because, again, when you have technical damage, you're not going to get 35 stocks that are breaking out, right? Because you have 6% move in two weeks, so you have to really pick your spots. And to the downside, considering the Nasdaq was up over 1%, Tesla did not rally. So let's talk about Louis, the only two pivots that confirmed today. Amazon 130.07 is supply. It's also last Friday's high. It needs to build. Here was Amazon. It got above the 130 area. That was the supply right here, the 50-day EMA and traded to the 50-day SMA all the way up to the 133 level. This thing looks really, really good. Now, the question is, and again, here's my point, that Amazon was Amazon's high today, 133, or was Amazon's high today, 133.40, right? Can I even trust this week? That's the major question. That's the problem we've been having. All traders have been having, especially in technology space. Again, is the today's high 33? Or is today's high 33.50, right? Please Nasdaq, do what you got to do, but fix this problem as soon as possible. But again, app Amazon, if it does rally tomorrow and confirms the 50-day, it should have another leg up. Tesla was definitely the big one of the day. I still have a little bit of a runner overnight. 214.80 to the upside. Again, I will always try to do a two-sided pivot. 214.80 to the upside. 204.88 to the downside. Can you guess which one confirmed? So Tesla confirmed 204. Confirmed 204.88. And this was just an absolute destruction. Absolutely got destroyed. It traded all the way down to 194 and change. I believe that is the wall I'm guessing here. You guys remember last week, they were coming for the 185, 190 puts. Today, they were coming aggressively right off the open for the 200 puts and the 190, 190, 250 weeklies. And they were coming for the 1117 expiration for the 180 puts. Guys, watch Tesla tomorrow. If it starts losing today's lows, we could get another move up as well. And everything else didn't confirm. One base was strong today. And the video was strong today. AMAT was strong today. Nothing confirmed today. Nothing literally else confirmed to me today. Again, here's finally the reason why the NASDAQ is aware of the issue. But guys, watch the video, right? And again, I'm not saying it's going to happen tomorrow. Hell, it might not even happen at all. But guys, watch the video. It's the same kind of setup as Tesla. It's been building now below multiple, multiple days of supplies. Does it have its days that it goes up five, six, seven points? Of course, because it's a $400 stock. But keep this in mind. So does Tesla, right? Tesla had those updates as well until it started losing major support. And when it started losing major support, look exactly what happened. So I'm definitely watching the video for the next couple of days. Does it mean the video has to confirm tomorrow? Of course not. You know, we can have a rally tomorrow and the video could go up 10. But the point is, again, like we say every single day, guys, make sure you are prepared on both sides. So there's no accidents. There are no surprises. And you're not the victim, right? You're not the victim.  You're the predator, right?  Be the predator. You're the predator of this market. Trade because you get value. Don't trade because the market's open. And that will give you a really good step on the other traders. So guys, have a great night, everybody. God bless. Hopefully this data issue is fixed. And with God's help, I'll see you all tomorrow. Take care.


Welcome back to 353. So today get to talk about more locking. Yay. So there are these things called monitors built into some languages. Who here has used Java? So have you done threads in Java? Could you do threads in Java? No? So you can. So in some languages there are these things called monitors. You know when they made object-oriented programming where literally everything is an object developers want something easier to use than like a mutex. So what you can do is mark a method as monitored and then let the compiler handle locking for you. But of course if you don't know how a mutex actually works and it actually uses a mutex under the hood and it's really easy to screw them up well they might get screwed up. So the rules for monitored methods is basically what the compiler will do is create one mutex per object and then in every method you marked as monitored it will do a lock call at the beginning and then an unlock call at the end. So you have mutual exclusion between methods for the same object. So in Java if you have the unfortunate task of having to write Java well there is a synchronized keyword and that is basically a example of a monitor it's just what Java calls it. So say I wanted to create a I don't know a class called an account and I had an integer balance so I was trying to run a bank. We'll get to run a bank and screw it up on next Tuesday but for now assume I just like I'm trying to run a bank I create a class that represents an account. I give it an int that's supposed to represent the balance of the account and then well if I have multiple threads and I write a method just called deposit that adds money to the account and a method called withdrawal that subtracts money from the account. I could have data races if I have multiple threads here right multiple threads could be calling deposit withdrawal we don't want to have some inconsistent result. So what I might do is I might just put a synchronized here and what that will do is a compiler will transform the code for us so it basically create a mutex in this class called monitor and it would transform the method calls to in deposit it would like lock this stop monitor and then do the actual adding to the balance and then it would unlock it at the end and for the withdrawal it would go ahead add it at the beginning and unlock at the end. So that way I wouldn't get into data races hopefully theoretically with this but we'll see later at the end of the lecture when we talk about deadlocks your code can have issues with this still. So there's also a another synchronization thing we can use called condition variables they're very badly named they behave kind of like centerfors basically they allow you to create your own custom queue of threads so I like thinking of them just as a queue and the name condition variables is because while they're supposed to predict a variable until it reaches a certain condition if it was centerfors the condition would be oh well the value has to be greater than zero in order for it to be able to subtract for it but if you don't want just that condition you can use condition variables to accomplish that for us. So their type is p thread con underscore t and while there's called a condition variable they have an int or they have a initialization function that has some attributes that we can ignore they have a destroy and annoyingly they have a method called signal has nothing to do with actual signals I get sent to processes it just has to do with what happens to that queue. So what signal will do this condition variable I like thinking of it as just a queue of threads or like a waiting queue so what that will do signal will just wake up the first thread in line and unblock it so it can go ahead and run again there is a function called broadcast that we can ignore but it will essentially unblock every thread that is currently asleep in the queue and then similarly to centerfors there is a wait and you might see here that it is paired with a mutex so how that works is it will atomically add itself to the queue and also the rule is you can only call wait while that thread has this mutex locked and it will add itself to the queue and then before it gets blocked it will go ahead and also unlock the mutex so that another thread can hopefully change the condition variable that it's waiting on which we'll see examples of it could be anything we want and make sure we don't have any data races with it then there's also a time wait just in case you get into that situation where you might you know block forever you could just put a timeout so that after a certain amount of time you will get unblocked so for the purposes of what we need to know aside from creating it and destroying it we'll just argue about wake that add wait which just adds this thread to the queue and then signal that wakes up a thread again don't have to worry about broadcast but that would wake up all threads so like I said has to be paired with a mutex so any calls to wait must already hold that mutex calls to signal or broadcast you don't have to have the mutex acquired when you call them doesn't really matter and why well we need to prevent data races so thinking of that condition variable as a queue well it needs to safely add itself to the queue and it also needs it as an argument because before it gets unblocked it will go ahead and unlock it before it blocks and goes to sleep and the other rule is whenever that thread gets unblocked it will only return from wait when it has reacquired the mutex so the mutex will be locked when you call it and then locked when you return from it so you don't have to worry about any weird locking conditions so we can have one mutex that protects multiple condition variables and like I said we will only consider calls to wait and signal so to understand again what wait does so doesn't contain any data races and it basically does three things whenever you call wait the current thread that is executing will add itself to the queue for that condition variable it will also unlock the mutex and it will also block so it will also go to sleep it now can no longer run so when eventually a thread that is in the queue gets like signaled like gets unblocked through a signal or broadcast then if it actually gets scheduled to run because again remember we're up to the scheduler so we don't know when it will actually execute it what it will do is it gets unblocked so it can run again we don't know when it can run and then it will try and lock the mutex again and wait will finally return when it gets the mutex so that is basically how wait works and if we wanted to we could rewrite that producer consumer example from last lecture using condition variables if I want you may or may not think this is easier than center fours but basically my condition variable I can just keep track of the number of filled slots and then I can have a queue that is waiting for a filled slot or a queue that is waiting for an empty slot and then while I would be reusing this mutex so this mutex would be protecting any data races to the number of filled slots variable and I can just go ahead check the value and make sure that it is actually valid so in the producer my condition is basically I only want to go to sleep when the number of filled slots is equal to the buffer size or capital n so I could that could be my condition so while everything is full I just want to put this thread to sleep I want to wait so I'm waiting I'm putting myself in this has empty queue so I'm saying okay I'm waiting until there is an empty slot and then I give it the address of the mutex so it can go ahead and unlock it and hopefully another consumer thread can actually execute if it gets woken up it would require the mutex and if the number of filled slots does not equal to n so it's not full it will go ahead and just fill a slot increment the number of filled slots because we just filled a slot still has the mutex so we don't have any data races and then it could go ahead signal any thread that's waiting for a filled slot and then unlock the mutex and then similarly for the consumer well we need to put it to sleep when the number of filled slots is zero so there's no data for it to get and then it can put itself in this has filled queue and then well eventually when it gets to run it would reduce the number of filled slots and then it could signal any producer threads that are waiting for an empty slot and then unlock the mutex so this easier or harder to read than the center for example easier right makes a bit more sense so I had some people argue that the center for was easier for this that one I don't know a bit more borderline I would argue that this is easier to actually read but whatever floats your boat I guess yeah so how the weight works so say that I don't know everything's filled here right so we have all filled slots so this producer thread needs to go to sleep because it's waiting for at least one empty slot right so it would put itself into a queue of threads that are waiting for empty slots and then it would also unlock the mutex and then actually go to sleep so I would have like just one thread in this has empty queue and because it unlocked the mutex well what could happen is a consumer thread could run right yeah yeah so it get blocked goes to sleep can't execute anymore yeah it's just in the middle of the wait call okay so we can have a smaller example where we can see if we have screwed up using one so let's take this example and I will give you a second with it whoops so the idea again with the condition variables is you are waiting for something to be true it doesn't have to like literally be a boolean value true in this case it is I will just assume that I have a global variable called condition and then initially it is false so the way I want to use my condition variable is okay well I will lock the mutex make sure there's no data races with it check so while the condition is false I will go to sleep because my intent is that I only run this line of code only run when so I only want to run this line of code if the condition is true so assuming I have two threads thread one and thread two thread one would start executing here thread two would start executing here is there any issues with the following code or aka is there any possibility that I can either run when that condition is false or I can go ahead and also maybe I don't know maybe a thread just goes to sleep forever give you a hint it's more likely that there is a possibility where a thread can go to sleep forever so so t1 is stuck in the wow loop so so let's assume t1 goes first so it would acquire the mutex so here I'll even put up here mutex and then which thread has it so mutex is currently held by thread one and then I could also write my condition variable called condition and then that could just be a queue of threads I'm keeping track of initially it would be empty so if thread one executes first it could acquire the mutex and then check the condition so while not condition well currently it's false so not condition is true so it would go into the body of the wow loop and then it would hit this weight so when it hits this weight it essentially would atomically add itself to the queue and then give up the mutex so it would look like that and then thread one can't run anymore right so thread ones put to sleep it is on that queue now if thread two runs okay well it changes that condition equal to true so this gets updated to true and then it would signal so it would wake up thread one and now thread one could execute again in this case thread two is done so if we choose thread one to execute again well as part of returning from this weight it will try and reacquire that mutex in this case no other thread holds it so it could grab the mutex that would go check the condition again the condition is not true so it's false so we break out of the wow loop and then this line of code runs while the condition is true no problem there that's what we wanted and then we unlock the mutex so we go back to this and everything worked no problem yeah so condition so condition is this boolean cond is the name of the queue yeah oops okay so here let's rewind so we can bring all the threads back uh so initially the condition is equal to false any other but is there a sequence of concurrent switching between thread one thread two that causes something bad to happen yeah yep yep so what you're saying so one thread has to execute first you're saying thread two executes first so what happens if thread two executes first well then it changes the condition from false to true whoops that is the wrong tool so changes the condition from false to true and then it would signal nothing to wake up so it doesn't do anything then thread one executes acquires the mutex checks the condition it's true so it jumps right here and it running this line of code while the condition is true all good unlocks the mutex nothing bad nothing bad happened there right anything else that could possibly go bad is it another one on discord that's oh that's close I think he might got bailed out by discord so what could happen that's bad is thread one executes first so thread one executes first goes ahead acquires the mutex check the condition so the condition is currently false so the next line of code it would run is putting itself on the queue but I can context switch over to thread two right now so at this exact point I context over to thread two thread two just changes the condition to true and then it would signal and then nothing to wake up so it's all good then we switch back to thread one thread one okay well it would hit this weight it would atomically put itself in the queue and also give up the mutex but now thread two is never going to wake it up again right so this is another example of lost wake up where that thread goes to sleep and never wakes up everyone agree with that that's bad all right fix it yeah yeah so my problem was well I had a mutex that was protecting a read to condition variable but I have a data raised because there's also a right that is not protected by a mutex so with that same mutex I should probably lock it here and then I can unlock it right after I update it or I could unlock it after I signal turns out it doesn't matter where do you want to put the unlock before or after after sure let's put it after so now if I just have that lock and unlock call what happens if we get the same unfortunate sequence of threads again so I'll move it back up oops so initially there are no threads in that con queue no thread has the mutex and the condition is equal to false so now what happened before is thread one executed first it would go ahead acquire the mutex so now it has the mutex that would check the condition okay so that's like a memory read of the condition it's false so that's not true so it would go into the body of the loop and then at this point right before it executed the con weight is where we had the issue before so now what happens if we context switch over to thread two so if we context switch over to thread two the first thing it's going to call is this lock of the mutex and can it make it by that no right only one thread can have a mutex at a time so it would get blocked it couldn't execute we have no other choice in this case but to context switch back over to thread one to make some progress and then what thread one would do it was would call weight so it would go ahead add itself to the queue and also unlock the mutex and now it's asleep it can't execute anymore the only thread we could execute is thread two so it would hit the lock call and it would acquire the mutex go ahead update the variable from false to true and then it would signal it so it would wake it up so now we have woken up thread one but thread one can't make any progress right because it would reacquire that mutex and currently thread two has a mutex so it's not going to return from weight until thread two actually unlocks the mutex so next thing thread two would do is thankfully unlock the mutex so it would look like this now if we chose the scheduler chose to execute thread one again okay well it would try and reacquire the mutex so it turns out nothing's holding it so it would acquire the mutex and now it is done with this weight function then it would go back up check the condition oh okay while the condition was true okay well great now I just execute this line that line's running while the condition is true so some of you might feel clever of like why the hell did you write this while why didn't you just write if does anyone have that feeling all right so we have one person with that feeling anyone want to tell them why they're wrong so I will give you in this case it could actually be an if that is fine but what about if I had three threads so I have three threads same idea in thread one I want condition should be true and initially I will have condition equal to false so I have that same thread but I just change the while to an if and then in thread two it's the corrected version so this will go ahead update the condition variable equal to true and then I also have thread three which just sets it to false and it doesn't have a signal here because well if it sets it to false the condition is waiting for while that until that value is to true so it wouldn't have changed it to true so now looks like everything's locked properly so I have no issues with the condition variable so if I just change that while to an if is there any possible interleaving of thread one two and three that could happen such that you know this line executes while the condition is false yeah okay so let me just write out a few variables here so you said we can context switch to thread three before it unlocks but before it signals okay so the suggestion is thread two executes first so it acquires the mutex and then updates the condition equal to true then unlocks so now thread three could run right so thread okay so thread one actually has to run first so let's rewind it all the way the beginning so bad thing that could happen thread one executes first so it acquires the mutex that is a okay no one has the mutex now looking at the other threads they both do a call to lock of the mutex so there's nothing else I could possibly run aside from thread one so here check the condition it's false so it would hit this weight as part of the weight adds itself to the queue oops and then also unlocks the mutex so now either thread two or thread three could run so you're saying thread two runs first right so thread two runs it acquires the mutex updates the condition to be true then it unlocks the mutex and now before it hits the signal we context switch over to thread three thread three acquires the mutex no problem changes the condition from true to false and then unlocks the mutex now at this point in time only thread two can execute next because thread one's blocked so next thing it's going to do is signal which is just going to wake up thread one and it is going to try and reacquire that lock to return from weight turns out thread two can't do anything thread one is the only one that can do anything so it would acquire the mutex and then executes this line of code and the condition is false whoo everyone good with that so how would i fix that the fix make this a while so there are cases like the previous one oh yep yeah okay so yeah what about if i just give these to the old swap Reno does that work all right so let's try with that swapping them and seeing what happens so the situation i was in where the bad was about to happen is that's basically the first thing so i'll rewind everything so let's rewind most of it thread one is just going to be sitting here in the queue and no one has the mutex now okay if i make that leap rewind everything thread one's just in the queue okay so let's see what could happen now so thread two runs next it acquires the mutex it updates that condition to be true and now it has no choice but to signal so it would signal and then we unblock thread two or thread one sorry so thread one can run can it run right now no because it would try and reacquire that mutex and thread two currently has it so couldn't execute but you know the only thing that could happen is thread two finally calls the unlock that we switched so now no thread has no thread has the mutex so right now either thread one or thread two thread three could execute right yeah yeah yeah so in this case so i might be okay if i make that switch if it happens that thread one executes next gets that mutex back and then now it's true so now we're good but we don't know if thread one or thread three is going to actually execute next so it might be the case and very likely this would probably work due to how the scheduler works but still technically has the issue and then these are one of the seven-year bugs that you will never ever fix so in this case i don't have to pick thread one to execute next it could be thread three which goes through and does the whole problem again where it switches it to false thread one requires the mutex and then runs that line while it's false oh okay so any questions about that yeah so if we got rid of thread two so if we got rid of thread two then it's not possible to actually execute this line because no thread is ever going to change it to true right and we only want this line to run while the condition's true yeah so if the condition started off as true then i could yeah but yeah so but if the condition started off as true and then all the threads only switch it to false i don't know what order they're going to be scheduled in so it's likely that that one thread is never going to be able to run or there's a situation where it might never run so with them typically you want to make sure that you eventually change that condition to be true otherwise it'll sit there forever um and yeah and other things like if i add a signal to here even though i don't change the condition equal to false not going to change the behavior it's just going to be inefficient so i just wake up a thread that would just wake up reacquire the lock read the condition again if it's actually in a while it just reads a false again and then goes back to sleep and then it's kind of just a waste of time but doesn't actually affect my correctness if i put a signal here if i put in however many signals i want if i just want to just throw some signals around for fun i am able to but like everything it'll just make your program go slower and it will just make things harder to read all right whoo all good with that all right so other fun things so we got that we got that so yeah like i said they whoops so they do serve a similar condition to center fours you can like center fours are basically a special case of condition variables where it's just protecting a value like it's just protecting an integer and it'll essentially call weight when the value is zero and then whenever a thread posts it would just signal so it would wake up a thread and then it would only increment if the current value is zero turns out you if you're like a computer science nerd that likes theory you can always implement one in terms of the other however the question of whether or not you can actually read your code after that is very questionable so in general if you have a like a complex condition that's more complicated than just an integer use condition variables it's going to be a lot lot easier to read so we'll have an example in the next one but once you actually like care about performance and not just correctness you have to consider like locking granularity so that's the extent of your locks or how big that critical section is because well you need locks to prevent data races but if you have a big chunk of code and it's protected by a lock only one thread can execute a time then suddenly your program is slow and if it's really really big you shouldn't have used a lock anyways just run with just a single core and it'll probably be faster so for like an example if i want to paralyze a hash table which you will do well should i just lock the whole table and then i don't have any data races well might be slow should i do something else should i only lock like individual elements should i think about something better to do might be something to consider if we actually care about performance so things to consider in real programs whenever you try to make your program not have data races there's going to be some overhead of using locks so if like the operation you're trying to protect is really really small like what we saw with just incrementing a integer well might be faster like take some time to do the locks has a queue take some time to do the unlock so that overhead might be more than you actually care about than just running it on a single thread might also have contention so you might also have like a lot of threads all fighting over the same lock in which case well they're going to be asleep a lot of the time and you're not going to have any parallelism and then the third one which we haven't got into yet which is the funnest subject is deadlocks so and like i said with overheads you have to also allocate some memory for a mutex so if you have billions of them even if they're only one byte going to take up a lot of space take some time to it initialize them whoops and destroy them takes time to lock takes time to unlock and the more locks you have the worse it's going to be but the most important thing and the thing that will definitely come up on the exam and you will definitely hit probably in your actual programs as soon as you have more than one mutex you might have the chance of having a deadlock so a deadlock is basically you'll get into a situation where a thread can no longer make progress anymore at least one thread sometime all threads and then your program looks like it just grinds to a halt but you could consider just like a single thread deadlocks if it can't make any progress anymore so there are some conditions you need to have for a deadlock so the first is mutual exclusion which we're just going to argue about deadlocks for mutexes so of course we have mutual exclusion second condition is hold and wait so you have to have acquired a lock and you are waiting for a different lock the third is no preemption so you just can't randomly take locks away from threads and then the fourth is a circular weight so you're waiting for a lock held by another process or another thread so these all have to be true in order to have a deadlock and it turns out we can break either the second condition or the fourth condition fairly easily and prevent deadlocks but first just to illustrate the example this is an example of a deadlock so we have two processors could be threads if we're sharing the lock between processes could be processes but say we have two threads the code that we write in one is to acquire lock one get lock two and then we release lock one and release lock or lock two and then lock one and the other thread we'd lock lock two then lock lock one and then release lock one release lock two so whoops typo so could get in the situation where we have thread one executes first it locks lock one and then we context switch over to thread two it locks lock two and now neither thread can make any progress so thread one has locked one thread two has locked two and if we chose thread what two to execute well it's waiting for lock one which is held by thread one if we chose thread one to execute it wants to get locked two that's held by thread two neither can make any progress and we are now screwed so that clear with everyone all right we're so in order to actually prevent them so to prevent a deadlock I can either ensure order so if I always acquire locks in the same order I don't have that circular weight problem so say lock one and lock two we're like global variables or something like that so they their address has didn't change well if I just have acquire lock one and then acquire lock two in that order doesn't matter I won't get into any bad situation so if I have two threads running this well thread one could go ahead and acquire lock one and then if we switch to thread two well the first thing it's going to do is try and acquire lock one not going to be able to get it so it's going to have to wait until thread one goes back executes acquires lock two and we can go ahead run our protected code and then we're all good so this code will not deadlock because well one way to think about is that you only get locked two if you already have lock one so the other way to do it is using that try lock that we haven't used before so the second condition is like hold and wait so if I don't know like if I can't ensure a absolute order of locks well this is another thing I can try so I could lock the first lock so I have lock one now and then I can do a try lock of lock two and then this will tell me whether or not I got the lock or not so it will return zero if I successfully got the lock otherwise it will return some value that is not zero if I did not get the lock well then I can make the assumption that another thread has acquired lock one before me and it might be waiting on like another thread has locked two so it might be waiting on lock one as well so what I'll do is I will just unlock lock one so I just give it up so I had lock one but I and then I try to get lock two if I don't get it I give up lock one and then I can wait for a bit I can yield I can do whatever I want here and then after a bit of time I can try and reacquire lock one again and then try to get lock two again if eventually I actually do acquire both locks then I can run this code knowing I have both locks acquired and then I can go ahead and unlock them both while I am done so questions about that yay now we saw a situation we can use try lock for so now we can wrap up if we don't have any other questions so now we explored some more advanced locking we'll have a larger example on Tuesday so do not forget that one because it will look somewhat like the lab and code you will actually write in your life so what we did today we have now another tool to ensure some type of order so that would be condition variables they're going to be a bunch a lot clearer for like more complex condition signaling but they're basically just a Q and then in terms of real world performance the locking granularity so how much code you have between lock and unlock is going to affect the performance of your program so you might want to have more locks that cover smaller pieces of code than just one lock that covers everything so if we've used python and thought it was really really slow when you're using threads with python it's basically because they use one gigantic lock to lock all of python because they didn't want to argue about every single thing and like make thousands of locks although recently they've changed it where python actually works with threads much better than it did before but if we have multiple locks then we might have dead locking situations and you have to prevent them so with that just remember falling for you we're all in this together


Hey, hello everybody. It's Brian Lead with DAV, coming to you again from my home office in my basement of my house in Northern Kentucky. And today I have a very special guest that I'm going to introduce to you. He's a DAV past national commander. He's been chairman of the board of directors for DAV. And he's also been a veteran of the year in his home state of Texas on two occasions. And if I have my factory, the outside also has a elementary school now in his home state of Texas named after him. And that's the past national commander, Bobby Barrera. Bobby, thank you very much for your time today. First and foremost, how are you doing? How is your family? We are doing well. And in fact, in the middle of this crisis, we're going with a personal crisis with my mom. She's almost 98 years old. And my sister who generally cares for her had hip reclation. So now me and my brother are the backup. So this is my week off. And then Sunday, I go back and my brother goes back to his town. So we're handling it well. And we have lots of support from other family members, which makes it certainly much easier to deal with. No, good. I'm sorry to hear that, obviously, about your mom. I'm glad you guys are able to be around and try to help her as much as you can. And obviously, we're all thinking of her and sending her our best wishes. So best of luck with that. Thank you so much. I'm much appreciated. No, of course. I failed to mention in my intro, but Bobby is a Vietnam veteran of the United States Marine Corps. He'll simplify and move off. You have to fly. Would you like to tell our audience at all about the injuries you sustained in Vietnam before you move forward here? Okay. Let me briefly mention that I was in my sixth week of dating Vietnam. And we were going out on a mission that intelligence could plan. And we were at the tomboy of tracks and we hit a 500-ton bomb that was rigged as a landmine. And when we took out from the staging area, I was in track three with two and one, two in the back. So I felt kind of secure. But what I didn't realize when I first known it on the track was that I had the Marine Corps top sniper, gunnery sergeant Carlos Hathcock, riding in the same track. And gunnery sergeant Hathcock had a $30,000 bounty on his head to whether he put him out of condition. At that point, he had 93 confirmed kills. So they were after him, they got us. We grew up. All of us that survived and we're all taken back to the United States and continue with different careers. Wow. Wow. There's a lot to unpack there. I would love to discuss that more. But first and foremost, you know, we're glad you're okay, obviously, and all that you've done since and all the lives you've impacted. Welcome home. And also, thank you for your service. And that's, that's a mindboggler one there. Any Marine knows that's night for well. And just glad you're here and able to spend some time with us here today. You know, with that in mind, obviously, we're going through some unprecedented times, we're all kind of dealing with this COVID-19 sort of unprecedented. And as you've kind of touched on with some of the injuries you sustained, but you know, many veterans are whether it's TBI PTSD or other ailments, being isolated at home is not the ideal situation. Not for that. And I'm wondering, you know, how you dealt with it. Do you have any examples of things you've done? And do you have any advice for veterans to try to help them kind of get out of their bubble a little bit stay as normal as possible? Yeah, I think the first idea that has to be grasped by all of us, whether you're a veteran or not staying at home with all this isolation, is that because we're separated physically, doesn't mean that we need to be separated emotionally, intellectually, spiritually. In fact, it's more of a time to stay together to stay connected, whether it's social or, or like one of my neighbors lives across the street, I was outside yesterday, he's on the outside and from his side of the street to mine, how's it going? Do you need any help? Those are the kinds of things that we need. Whether you're a veteran or not, the fact that we're isolated, that we're separated, we need to stay connected. And I think that is the first step is we can accept that and we can work on it and work on it together, because you can be together and be isolated without having that connection. We need to stay connected. Yeah, I mean, I couldn't have said it any better. It's part of the human condition, wanting that human interaction. And like you said, it's more important now than ever, it can be easy, I think, to kind of be reclusive in situations like this, especially if you're somebody that might be battling anxiety or depression, or maybe you have social anxiety, or all this even started, it might be easy to go into that show. But I think you just hit a home run with that. People do need to push through that the best they can. And part of the reason we're liking to do these videos is one, to get as many perspectives as we can, but to encourage other people that are watching these, to do things just like this, to call veterans. And as you pointed out, you don't have to be a veteran to do that. Make a phone call, check in on them, see how they're doing. Don't let them become reclusive and retreat into their own corner. I'm glad to hear about some of your stuff with your neighbors. Anything else that you would want to tell a veteran as far as your advice and through your experience to push through this current situation? Yeah, I think I mentioned at the beginning, accepting the fact that we were separated physically, but not emotionally. And I think that's what carries me and I hope and I would almost that that carries all of us who are isolated. You mentioned PTSD as one and that's certainly a factor. They are sometimes isolated even within the family. They isolate themselves and because more difficult. So I think having that support system becomes critical. I think it's doubly important that now that we are separated physically that we need to develop some kind of support system. And as a PTSD individual myself, I understand that it's difficult sometimes to accept help. And I think the key step and you mentioned the body check system. And I think that is a key to surviving to older coming to live through this difficult time with this virus that's going on. And I think a simple phone call. In fact, a couple of days ago, I got a phone call from a fellow veteran. He's a Vietnam veteran as well. He lives 80 miles from San Antonio from from my home. But once a week, I get a phone call. And Alex says, are you doing okay? We share stories, we share concerns of other individuals. And that's what I mean by having that support system being there for each other. I have a group. There's a group of those some of us are veterans and some are not. That we we used to go out and can't do it any longer. We used to go out. Every Friday we have breakfast together. Start out the day at seven in the morning and enjoy the camaraderie and the friendship that we have. Well, now that we can go out for breakfast, we still stay connected. Do we share text? I got a funny cartoon from my sister yesterday. And immediately what did I do? I share it out to the others and they all say keep them coming. We keep we need to maintain that that sort of sanity that will allow us to survive. And whether it's a joke, a vital piece of information that we need to share with each other, a simple thing as a phone call and saying hey, like my friend did. The I mentioned at the beginning how I got injured. One of the individuals who shared that 500 pound bond with me, it was a captain Highland. He was an intelligence officer. And he and I have stayed in contact. And once a week, I either mail him in texting, or he texted me how's it going? He knows what we're going to do with my mom and a little extra. Making sure that that I'm not alone. Making sure that we're in this together. And that to me is critical, Brian, because if we don't have the support of each other and we don't have the compassion of each other, if we don't have the time to send a text to send an email to send a phone call, a little short note, this all it takes. Kelly, I care about you. I love you. I'm concerned. And together we will survive. Yeah, Bobby, thank you very much for sharing that I think you're dead on. And for those of you that are watching, if you're looking for ways to get involved and kind of take some of the advice that Bobby is giving, it not only could be life saving, but it could be life changing. And we have during our DAV Centennial, we do have a volunteer initiative called 100 acts of honor. We are considering these phone calls to veterans, whether you're a veteran yourself or you know a veteran in your family or you have a friend that's a veteran, even if it's a friend of a friend that knows a veteran, please try to track down that phone number, give them a call, see how they're doing. You can post it on your favorite social media platform, you can tag DAV with the hashtag 100 acts of honor, we're trying to highlight that story and let people know about your efforts. Bobby, I think I've taken enough of your time for now. I really appreciate it. I will be bugging you. I'm sure in the near future. Hey, I'm here to help anytime. I mentioned the word compassion and to me, the DAV and its memberships have that compassion. They know they've lived it, they've experienced it. So now we want to share it with each other and that's the bottom line. No, amen. Bobby, thank you for everything you've done. Thank you for your service and a lot of that compassion that you talked about with DAV came from your service in the organization. So thank you very much. I appreciate your time today. And like I said, I'll be reaching out sooner than later and I'll be bugging you for more. I'll be here to simplify our simplify.


I think they're taking maybe some of our revisionist services, but they'll be. Any follow-up comments or course lessons? They have a motion to approve the minutes of 4.20 to 19. Did everybody had a chance to read them? Yeah, there's something on there that I had it marked on the ones that are cut up down the cut. In 4.1, the wording, there are only 17 kindergartens, there's something not worded right now. One classroom, one healthy classroom. But it's the way it's worded, it says coming in, which is two healthy classrooms, one. That's what it should say, one classroom. Anything else? Those in favor of approving the minutes as amended? If you say aye. Second. Aye. Oh yeah, I agree. Oh, did we have a second? Did we motion the second? I don't agree. I'll make a motion to accept the minutes as amended. I second. Yeah, there you go. Those in favor of approving the minutes as amended? Aye. Please say aye. Aye. All right, discussion agenda. 3.1, annual fiscal management questionnaire, H4. This is what you just, this is what you just signed.  Yeah, I just signed it. Is there any discussion? I just read the lines that from that note. Discussion is done. So Washington Central Unified Unified School District update. So what we did is we moved away from actually 16 hours, like moving into an update of what, as a whole. So we decided to make a change in our agenda. And they, they had a couple of updates. I don't think we're going to be here, but. So first, starting with the elections are tomorrow. But no, so you were to vote. We're having, we have scheduled to meet for this week. Hopefully it'll just be one of them, and we can get all the work done in the first one. To schedule? Yeah, to schedule. For the, for the unified. Once people are elected tomorrow. Yeah, and everybody would be, yeah, everybody would be elected tomorrow. And Mary Orsby is going to be at our first meeting. Wednesday. Wednesday. And we'll come and give the oath to everybody, because we, everybody needed to be, we have had the oath, and it's pretty hard. Because the election is tomorrow, and to be organized, not all clerks open at the same time. So Bill and Christa took care of that. And send an informational email to everybody. Yes. They found out you guys read it. The second question is identified. The truth is that we, we were organized that, that day. And then we have scheduled six, and I don't have them right in front of me, but we didn't have much six meetings for most of June. To be able to get all our work done, putting the budget out, the policies, and just a, besides, deciding how we're going to run. The board is mostly organizational, and making sure that we decide if we're putting articles of agreement out to vote, or not, and vote on the budget. We had an articles of agreement meeting last Wednesday. And I was at the meeting before, I was not there last Wednesday, the only, the only part of that one was to decide on the two, on debt, those two issues. Article four. Yeah. Which was to the school. School closure. School closure, yeah, when it's a school choice. So we had the, we had the lawyer put together two, two samples of what it would look like. So one was the full, they're very similar. The majority of the board, the new unified board, would have to agree to close the school, plus a positive vote from the town that would be impacted by the closure. The second one was the same, but had to be voted for two years consecutively. Yes, that didn't pass. This is for two years out anyway, right? This is two years out anyway. And that'll just be part of the articles now. Okay. It was just the wording to have article four. The amend the way people wanted it. Yeah. And it ended up being rich by the first one. The first first one. So not too consecutively. No. So in two years, if there's a vote, it goes to the new board and then the towns? Yes. The new board has to have the majority to bring it to vote to that town. And it's just that town. It's just that town. Okay. So we, that was sort of after much discussion and discussion. That was the best consensus that we could all with you participate in the article. But it was a little bit of a departure where we were, but we all felt pretty good at the end. And it really represents. So is that a article we just voted on? Yeah. It'll be part of that. Yeah. But the articles committee felt like they not felt like, but felt that it was up to the new board to put the amendments and articles to vote not to ourselves. We were just putting them as a recommendation. And then they'll decide, they might decide that nothing is being put out to vote and just the budget or they might decide to put the work. Out. But I can't speak for the new board wishes. And as far as I know, there is no, I probably think that might be more important, but as my last meeting, last Wednesday, there's no delay. There's no delay. There was no agreement. And there's no, there's no delay. Did you say that one of the conversations we have was about debt though? Or was it just about the school closure? Sorry. Just the school closure. The school closure. The school closure. Yeah. No, no debt. Can I ask a question? So is it, is it too, just because people ask and talk, is it two years, like two school year, you have to go through to the next two school years and then, or is it calendar years? This won't take, this won't take effect. The, the articles that we had already protected us for two years. Right. So it said in two years, you can't close any schools. So this will start right after that. But pretty much, you know, once the, the only way that we could change is by the, the board to vote on that. So it is kind of a double protection, but we could honor it, you know, right in 2020. Right though. All of this doesn't take effect until, until later today, adding a member at the board doesn't take effect until 2022. Okay. I'd say a school year. Yeah, school year. Yeah. Not calendar year. No calendar year, that's true. Thank you. And I don't have them electronically, or I would have read it to you. So in that packet that I left that one. Yeah, yeah, I left my packet in that too. Um, any questions? So maybe, but I don't know. There's not much to, because we haven't met, so I don't know. What would the second meeting be this week, you were saying? Well, we, if we didn't get everything done on that first meeting, because it feels like the first meeting is pretty much just reorganization. Yeah. So. Okay. We don't have the possibility of having another meeting if we don't get our work done. You don't? You don't? And has it been? I don't know. I can tell you what it's been. I have every Wednesday for the rest of my life, pretty much. Yes. I saw that. Yeah. From now on, I believe in you. It is. I'd rather it was, yeah. But Wednesdays don't work out that way. There's an executive committee this Thursday. So, yeah. Would it be Thursday? No, it was, let me just, and maybe it's just that we're just talking that the executive committee is about, and that's what I'm talking about. I just had Wednesday Wednesday. I'll step on the tour. And there's nothing on Wednesdays agenda that says another date for work, so no. Yeah, please just send it. New board information here. Which says May 22nd and then the next one. Yeah, the next one is not until June 5th. So, May 22nd, we're a board organization. We'll do the budget. We'll do the amendments. It's just this a lot. So, in order to get the budget warmed, all that.  So, it's the, but we're not starting to meet until six. So, that's why we had said that it might need to be. So, is the budget agreement putting the review and the amendments and warning? Those two warnings need to go out on the 22nd. And so, the action for that meeting would be budget, artistic agreement, the amendments, and the annual report and approve the district organizational meeting. So, the meeting where we all met, like at that time, we would approve those minutes. Any questions? I think this meeting is not scheduled to June 5th. I think we have one on the 29th. That's the Washington Central. Here I'll be to hear something about this. And that's lovely. So, that's one. Yeah. Good. Okay. That's another one. Another Wednesday. Just plan on Wednesday. Wednesday. Yeah. So, next is 3.3. As in terms of print and update, we finally had the final interviews. Mr. Sherwin was part of the committee. We interviewed last Thursday. This is our last round of interviews. And we all agreed to bring forward two candidates that will go around May 23rd and visit the schools. And I know May 23rd is the function here, but they go around during the day. And then they are being interviewed by the executive committee. And they will make a decision on Thursday night. So, I want to miss the argument. It's okay. Any questions? Names are public. So, you're not there this Thursday? Yeah. The what? In order to meet. Executive committee meeting this Thursday? She's not here. No, I'm not here. I'm going to miss the... No, there's just actually Q and R's thing that I was saying. Oh, I really want to go, but I'm not at the executive committee meeting Did you say the names are public? I knew we got them in an email, so... I am pretty sure the names are public now, but... Yeah, the names are public. Because they have to announce in their jobs and they're touring the schools, so they have to put them out. So, Deb Taylor and Don Normstrom, I think not to say his last name, right? Apologize. So, they both were interested in... And we were very clear that it's an interim position. We are... They attention... We don't know until it goes to the new board, but the intention is to have a full full search with input from the community, input from the teachers, and input from the leadership team, and start that in the fall. So that we have a couple of time to find the superintendent and use this time to put... You know, all the policies and the governance ourselves together during this time. Questions? Three points. Actually, can I ask just a process question? Yeah. Is the executive committee going to select or are they going to have a recommendation the following week? They're going to have a recommendation that you're prepared. We're going to... They're going to have a recommendation the following week to the full board, and the full board will hire. Then we went back and forth if it should be the new board or the full board, but because the work is really being done by everybody, by the full board, we felt either why it was the same, the same people, the same intentions, the same mission. So that was the decision we made for process and to making it quicker and not adding another agenda item to the new unified board. And the candidates that we're interviewing are also interviewing at other places. So there's not a lot of time for everybody to make that decision. Well, what I think part of the discussion was essentially we're hiring staff at all the schools and the current boards are doing it because you've got openings, you've got to fill them in. Yes, yes, so yes. So good, good. Three point four. This was crazy again, I don't know how you guys feel about it, but the transition communication really know how to phrase it. So that thought was that I could type something, but if we could send a wish or when you begin to do the new board from our board, so our board is dissolving, right? And send a message to the new board from our board, but I don't know that's too crazy or how you guys feel about it or just, you know, mission them well or, you know, this is what's been important to us. The votes are what mean. That sets a new board, so I don't think it's necessary, but I think you two are the ones running from this town, so I'm sitting here being elected. There's not a lot of competition. So, I mean, and you guys kind of know what our goals were. My thought was more about like, it's more of a tongue. And so I said, your tongue, you know, we totally support, it's not just the two of us, or like, I know that you guys were always half our backs and we all had to know each other really well during these years, but like, I don't know, I just can't say the names. English, like a gesture of support, you know, like, but I don't know, that is just very much mean. Do you want to come from each one of us? No, I was thinking we could just do a sentence. I'm not thinking that we're going to write like two paragraphs, but I didn't want to speak for everybody, and that was not something that we were, you know, it could be part of the minutes, or that's something that sounds too, you know, not us, but that's totally fine too. I don't. I think totally fine saying something to the effect of thanks for being willing to carry on the work and good luck. Yeah. For me, I would stop short of saying support because I don't know what's been proposed to you. I might not support it. Yeah. Yeah, so. Thanks for coming forward, and we wish you the best.  I don't think, you know, or maybe not. I wouldn't want to say anything that was viewed as attempt to influence. I think we just acknowledge that the new board has stepped forward and is going to do the work necessary to make our schools keep our schools strong and thanks for, you know, thanks for your willingness to serve, or something along that line. What were you thinking? We get like an Olympic torch and Yeah, it's just like passing on our, you know, I don't know how to explain it.  Well, there was thanks. Yeah. So I had a conversation about this transition with somebody who was relaying what Harwood did when they moved to the transitional board and they did like a little sort of open house thing when they accepted the audit. That was like the last action of that board. Yeah. And they had like a little reception that was open to the public and they had a scrapbook of, you know, when that board was formed. It was actually, it was really a sweet, it was a really sweet idea. Yeah, it sounds great. It was, it was like a way to sort of like, you know, like this chapter is closed and like this board is now, like our work is officially done and the new board had time at that point to have sort of gotten their legs under them as well. Yeah. So just, just a reflection of the conversation that I had. Yeah, we're doing something similar. I don't know if the details bring on that because we haven't met again. So it's going to be there on the 29th, there will be kind of a celebration. And then obviously the new board wouldn't have had that much time to meet, but it'll be some kind of celebration of this period and Bill has been heading that, at that, that effort on good. But that's, I just offer it as there was something that sort of struck me as that was a really sweet way to do it. Yeah. So I don't know if the timing works as well for us. I don't have an opinion, but all those happenstance conversations. So with some, thank you for willing to serve in the new Washington Central Unified School District on behalf of our communities. All right. So you have our kids. Yeah, the half of these won't give you a full warning. It's awesome. We wish you the best. We wish you the best of luck or the best of luck. We wish you the best. We wish you the best. It's not going as well. We wish you the best life. We wish you the best. Good luck. Some of us are watching your hands in the end. On behalf of what did you say? The East Monterey School. The East Monterey Elementary School. Yeah. Yeah. I mean, we can happy it up and say, you know, we're excited for the future or something like that. I don't know. We're hopeful for the future. I think that's straight to the point. It's perfect. Just as it is, we're good.  He's trying to help me. Okay. Do you have that? Two. I just, thank you. Yeah. Great. Well done. Thank you. Okay. Administrative support? I don't know if there's any questions. Last month, I had told you be happy to share a monitoring report with you with any executive committee you met and agreed to have this all done in the fall. So I will invite you all back in the fall to see the numbers. But what I tried to do in this month before is kind of just recap the year. More anecdotally, if I can find it. In each of the areas in the implementation plan, I don't know if there's any questions or I guess for every, to me, everything looks well. I, you know, it's awesome. We feel like, but we're doing this really, yeah. Exciting. And this, you know, part of the multi-tier support stuff like that is what I'm excited to for the report. I don't think I have a really good, but I read the balance assessment system and the three points of data and stuff. I don't Try and relate in the data. Yeah. Do you have to explain that? No, no, not totally, but just that sort of what that means. Okay. So as we are getting better with our assessment system, so what we used to do, it's almost like putting all your eggs in one basket. We'd only look at SBAC data, right? Because that's all we ever had before that. It was need cap data. And then we started having local assessments, which is the start of 360 and the reading assessments that we use the writing assessments. So we started bringing in other points of data to look at. And basically trying deletion means that you're, you're looking at at least three different pieces of data, measuring the same type of scale, right? So that we don't say, oh, well, according to SBAC, this child is not where they need to be. You need to look at more than just that. So our conversations this year have been really, I am, I'm quite exciting because we're looking at what the teachers see in the classroom and looking at what we're putting in infinite campus, you know, just the day to day. And we're comparing that to what we're seeing in our assessments that we give every, like two to three months. And then we're comparing that to the big.  It's very cool. So we, it is all color coded. So we look at a child and we, we traffic light them, which we've been doing for years. And we might say, you know, this kid is yellow here, but they're green here. Why is that? What's going on? You know, what is it measuring here versus there? And so we're having, well, I feel like our much more meaningful conversations about a child and not just saying, oh, well, SBAC says that they're, you know, not making progress or, um, so, so what we did in the fall, is we get, and this went along with the goal setting because teachers set goals in the fall. And I'm, I'm sad that the focus this year hasn't been on that because in this building it has been on that. It just hasn't been at the our level. So I'm really hopeful that in the fall we can come back to that because our teachers have been doing this. So we did, we did some training with all of the teachers around what does triangulation mean? Why do you need to look at more than one data point? And we've gotten well versed, I would say, in having those conversations at our kid talk sessions, which is that when we sit down as a, you know, every teacher who works with whatever set of kids and we go through each child and we talk about them. And that's where the goal setting has come from also. So every time we give a new assessment, or during a new assessment when do the teachers will look at all of that, set goals for the next window, you know, work on their instruction, work to move kids forward, then we'll come back, we visit it. So that's kind of in a nutshell what triangulation is. And I'm going to show you, but keep talking. Yeah. So the last question with that was so, so how does the trauma and form practices that we have doing now affected? Is that, you know, how we do this triangulation or the kid talk or how does it affect our assessments, our local assessments? Yeah. Has that been like, that's a really good question. So I feel like this year has been a really nice year learning from our staff around trauma transformation, but we're not really, we're soaking in and taking in a lot of information, but we're not, that would be a next step for next year. Like I would say, especially in Michael's position and looking at behavioral data, we have a lot more of those conversations. And so there's four teachers and myself who are, who are in the graduate class, we did Melnick, which wraps up Wednesday. And then there's another cohort of teachers who, Michael is a part of Hoover's with Dave Melnick, who's been working with him for the last two years. So in these small pockets, the conversations are happening, but our goal is to bring that back to the larger staff and have them part of these. But, you know, when we, you know, DCF is a close contact of ours for a number of our kiddos. And so when we have cases like that and we have kids in trauma, it comes into the conversation, but we're not probably as purposeful as we need to be yet. That's definitely a next step. Oh, there's other. Well, actually, I did have, I mean, not on that section, down below. I was just like, so, replacement for Julie Anand Jensen. Alex, so she's not full-time between the two? Really? A half a day. And it's really tricky. So she comes here on Wednesdays at lunch. So instead, she'll be able to spend a whole day with us and then provide some services to kiddos, which is a win-win for her and for us. Yeah. So does that give her full-time position of that one? But not a full-time teacher. But yes. But oh, okay. So she will be working full-time. Full-time. Yeah. A half a day of her week will be here. Okay. Yeah. But she actually had approached me to say, if it ever comes up, you know, I love to do that kind of work. And I was like, oh, that's good. And then it just happened to me. Okay. Cool. And then just a process question. So you have two paras coming in for pre-K students. Yeah. How do you identify that need? Is it just through the screening process? No. No. So these kiddos are identified as soon as, before your third birthday, you have to be identified. It's called Childbinding. It's our job to know who lives in the community and who's growing up here before we even enter our school. So these are children who have been served through intensive family-based services. So they're already getting services in their home or going to other places. They just hadn't turned three yet. So it's in the birth to three program. So they're pretty intensively. It's kiddos. So I'm going to show you. This is just a visual and you don't need to see any names or anything. But basically these are our reporting windows. So that was September, like November, January, and then this will be the spring. So we look at any color code and just kind of compare the three different measures to say, okay, yeah, this kid is green all the way across. Their SBAC score, their DRA score, teachers, they're all, you know, that's a good match. And this one right here, the student was in the yellow. The star 360 said they were in the red. So then we'll talk about that. We'll maybe dig a little deeper into the star. Where did they get hung up? What skills might they not have? That maybe the SBAC didn't measure. So we'll look for any, try to see if there's any that stand out. We sometimes get some that might be one of each color and that's like, okay, what happened? And maybe they had a really bad day. So we begin the star 360 and we might readminister it and then it's, you know, where we think they should go. So as we go across, is that by date or? Yeah, so here's the kiddo. This is fall and this is spring. So the other thing we look at over time and this is where the goal setting has come. So this kiddo was in the green at the beginning of the year and the May star shows them in the blue which is actually exceeding expectations. So that's something to celebrate like they were where they should be and they've actually grown. We might look at and say, okay, this kiddo's been yellow and this is red. What's happened? Why are they not making progress? So that red there is not all red. Then we have a, we may have a kiddo who's just blue or red, yeah. And that child is most likely on an IEP with a lot of supports and services. But so this is, this is what we've done. So that's reading and we do the same. This is our math data. So it's the same when we go through. So that's, that's how we're trying to even in having that conversations. And then how does that give representation to the parents? So parents get this information in a number of ways. They get it at report cards for proper support time. It's an infinite campus. And then once, for the first time, took the S back this spring. So then you get a report at the end of the year telling how she performed. Any other questions? The fiscal report? They're really our, so we, we close down before regular break with teachers and we're working on closing down the budgets. This is a huge task for central office because all of our systems are going away and we weren't coming on in our new district. So they're working extra hard over there to close down our books. You will see I'm assuming at the June 17th meeting the end of year but it hasn't happened yet. So it doesn't, this report doesn't look any different than last time we met. Any questions on that? So I'm sorry, were we going to transfer funds or not yet? We're going to wait until June. I think everything is supposed to happen in June. Yeah, we're going to, we had that conversation with Phil and we're going to wait until the car so meeting over in June. All right, thank you. Once they figure out the percentages. Yes, and you'll know right where we're, like everything will be closed. Yeah. Anything else for fiscal? The executive committee report. I think that's pretty much totally everything. I don't know if you guys had a chance of reading the minister on the executive committee, but pretty much it was the same the interim in Mark Andrews. I think that you guys will know we hired a consultant. Mark Andrews has been taking part of the process. We had three interviews. We were at the media of 10, Mr. Sherman was part of that committee too. And we're in the process of having another executive committee meeting on Thursday. We'll be hiring, we'll be recommending a candidate to the Washington Center to the full board. And we have scheduled a couple of carousels meetings. It's pretty much similar to what we just talked about. Unless you guys have a specific questions. There were, in the minutes we had, Carrie had asked those questions for example of what how do we know that it was doing an interim. It was the lawyer was very clear on the language. So it's clear that it's just an interim contract that we're not offering. Yeah, that is final. And so there's no question there. We have started to change all of our accounts over to the new five district, both on healthcare but that's been more of a transitional board, not the executive committee. So I think we're in good shape was doing all the steps to get us to where we need where we need to be looking at you. Okay. Yeah. Did you guys have a chance to read the minutes in that? Or yeah. So did you hear back it hasn't gone through but I'm guessing he's not in service. I think 5.1 needs to be changed. I have nothing to recommend to you. Yeah. And I don't know if we approved it. I said that we are executive committee. Executive committee minutes. That's why I was just reading. There was for most people it was the same as the teachers. Yeah. So we could just go ahead and do the same thing. And because he said we had hitting them in your producer. So if somebody you have it here it's right there both. So could I have a motion? I would make a motion that we recommend that we approve the non-bargaining contracts at an increase of 3.1 percent that's what the non-bargaining. The non-bargaining administrators and all others in the central office who are not administrators increased by 3.5 percent for the 2019-20 school year. Do you would not say central office? Do you don't say central office? Yeah. But just the other. The other. I missed. Right. The other non-bargaining. Right. All others. This is a motion or not. Yeah. Yeah. But people say it was for. So 3.1 percent increase for all non-bargaining administrators and 3.5 percent for all who are not administrators. Yes. Yes. Yeah. I mean that's the same across the. Yeah it's the same across but yeah. But because we still do it. One second. I second it. I second it. All those and any discussion. All those in favor of approving the motion as. Stated. Stated. But do you want to read it? But you do. You have good. I think we have active. You sure. The non-bargaining contract increase of 3.1 percent for the non-bargaining administrators and those all who are non-bargaining administrators 3.5 percent. Or that can wait for the school year 2019-20. Yeah. Thank you. Non-bargaining non-bargaining. Staters. Yeah. What's the 3.5? Yeah. Non-bargaining. Non-bargaining. Non-bargaining. Non-bargaining. Non-bargaining. Staters. Yeah. Yeah. Okay. Thank you. Everybody good with that? Yeah. Yes. All those in favor of approving it please say aye. Aye. Aye. Any oppose? No. No. No. Approved board orders. Okay. I don't know. I don't know. I don't know. I'll make a motion to approve the board orders for. 48,168 dollars and 71 cents. Second. Any discussion? Seeing none. All those in favor of approving the board orders. Please say aye. Aye. I think we can have a future agenda if we're never seeing each other again. Yeah, but we have the carousel meeting. We still have the carousel meeting. Okay. We just started seeing it. We need to decide on what your transfer to the capital and what you need. Right. Right. Yeah. You don't have to see me two more times. Sorry. Any. Yes. We could get out of this question about what you were talking about. Could do. As well. I have one communication. Oh, I don't. You have? We don't have anything. You don't have anything. At least we have this real thing for you. Just because it's our last time here and I know that you can't go to the other. You can't go to the carousel meeting. I'm calling June 17. Good for you. I'm very excited. Is this your first in Park Galeon? It's wonderful. I can't. It's just wonderful. It's a terrible week to go. But it is. I will be back for graduation. But they don't always think about their weeks very long. Well, they don't think about their northern weeks. They feel like they're out of school. I ask that because in this cohort is only principals. So every principal is in the same situation. But so I won't be there on the 17th. You will be running across the park a lot in the field when they get to graduation. Well, no, no. If you saw last year's, you know what I'm talking about. Yes, she'll be sending me the Japanese Meditation Garden at the Koi. It's the most beautiful building ever. And the work is amazing. The work is just some of the best ever. And thank you all for doing your part. And I know that was a long survey, but thank you very much. They said the more the better. So I appreciate it. No, I fly in at one o'clock Friday morning. Oh my gosh. And then I'll be here. So there's something from the staff for each of you. If you'd like to open those. And then there's a hanging basket for me also. I hope I get them right. Check your clothes to make sure that I don't talk to anyone. It's nothing. I'm sure those of you know how many you're calling me. I'm like, it was okay. She wanted to find that staff. Thank you. It was not here. Well, we very much appreciate it. This is this that day for me. I know it's the class that would have been. Yeah, we had learned so much from you. We said, I just want to thank you. Thank you. And I want to say to everybody that's been an honor with every view, studying, respect. Thanks. Have you, do you want to make a motion to adjourn? Sure. Stephen. You can just prepare. Adjourn. Okay. I was starting to speak. I forget all the people I argued with. Thank you. Thank you. Do you want to show that? I don't think so.