ame but I agree with every comment this older gentleman over here made about the rebuilding but I also know that the high school is an issue and I just I really want to know where the money is going because it's permanent town building the buildings are under the permanent town building committee but they were schools and so like there was a reason our forebears built these schools for this community and I love that my kids can walk to their school and I would hate to see if this community was broken up into an area where people couldn't walk to their schools and that is pretty much probably it I'm sure some other thoughts will be repeated thank you for the time yeah hi we're sharing our time my name is Nancy Morrison I live at 56 Claremont Avenue I'm president of the Arlington Children's Theater and we're here to round out the hat trick on arts pro arts groups hi I'm Matt Lundin I'm the artistic director of Arlington Children's Theater so I just quickly have a few things to say about Arlington Children's Theater and what we do here in the Arlington community so like I said we are children's theater and we do about nine productions a year also summer camps as well as April and February vacation camps so throughout the year we work with about 500 kids and 70% of that number is Arlington kids we also go out into the schools in Arlington I myself currently started this week teaching after-school workshops at Brackett, Pierce and Bishop as well as for me I'm also a TA at Hardy Elementary and I was also a TA at Stratton Elementary while I was finishing my master's so I totally understand where you're all coming from as far as space issues but today I have to come from the point of view of my full-time job which is artistic director of this children's theater the kids involved all 500 of them are diverse in every way including those on the spectrum as well as kids that I work closely with going through issues of gender identity as well as sexual identity and all of that so I just want to hit on for that group ACT is a peer group a community in a safe place where they accepted for who they are for the kids the community of ACT is more important in life changing to them than the acting they do ACT has been a part of this community for 25 years we're celebrating our 25th anniversary this year and I myself have been with the organization for 10 and for 17 of those years we were nomadic we were in church basements and we finally found a spot at the Arlington Center for the Arts and for the last seven years have been working there with rehearsals and productions so now with that I turn it over to Nancy so the reason we're talking about this tonight is because we have so many of so many members of other town committees councils and offices because we really think that the Gibbs building is Arlington's current art center it's affordable theater and rehearsal space for the performing arts and it's space for artist studios classes and camps Arlington needs an art center if the Gibbs reverts to becoming a school then I think actually it's up to the town of Arlington to work together not just the school committee but all of the committees and councils in Arlington to work together to provide an art center to help provide a space for art not to necessarily fund the programs but to provide a space I've been thank you I've been thinking about this and the best analogy I can come up with is title nine title nine made it so that women's sports were funded in an equal manner as men's sports so I'm sort of thinking this as title nine point one that maybe recreation should be funded and art should be funded in the same way the town currently provides space for athletes fields for baseball and soccer basketball courts tennis courts an ice rink for hockey playgrounds for children space for our seniors to gather and learn and a library for everyone the town's doing a wonderful job the town through the school committee has been providing an art center as well and we've deeply appreciated that so we really think that this is a town issue that we need to have an art center Arlington Children's Theater would love to work with the schools or with the town on multi-purposing space because we only operate at night so we'd love to use empty rooms that are used by someone else during the day and we hope that you'll think about title nine point one and giving equal opportunity for arts as we do for athletics I also wanted to address the Mugar Enterprises in the past Mugar Foundation has provided funding for the various theaters in the Boston area their foundation is no longer doing that they have a different focus however Mugar Enterprises owns four or five theaters in the Boston area so there is a precedent for them actually building and operating the professional theater spaces and so that might be something that's worth looking into thank you Adam Street one of the previous speakers alluded to the mistake the town made of selling the Crosby School a few years ago if I remember right the agreement was that should the current owner decide to sell the town as the right of first refusal has anyone approached the owner about repurchasing that school no okay another question I had was in doing the space analysis was the was one of the constraints that they would not be redistricting done again no no okay then I guess I didn't understand the answer regarding the Parmenter School and another speaker mentioned the possibility of having K through six elementary school and the answer was that you couldn't have you couldn't reuse the Parmenter School because you wanted to put the fifth grade for the entire town in the Parmenter School but why wouldn't you just make that another elementary school and then redistribute the sixth grade across all of the existing elementary schools and if you needed to you know for a period of time get the modular you know classrooms as needed couldn't you do that you know couldn't that be a scenario because it's certainly something we can look into so I I mean I I just don't understand it seems to me that Parmenter was preemptively taken off the table and and I'm not sure we can put anything we want back on the table I hope you will just one final comment on the this plot in the book about permitted housing units Han of Arlington I would just point out that between 2011 and 2014 you can explain almost an entire increase by over 300 units of apartment developments at the Sims and the Brigham site and that's not you know typical development scenario in Arlington the possible Mugar development as a 40 B not withstanding I'm not sure how that affected the analysis or at all but I think it is something you need to consider thank you Dr. McKibbin do you have a answer to that question the the question was pertaining to the large developments in the in the past couple of years yeah that's that's why if you notice in the chart their building permits for above 100 we have dropped it down to 80 for the rest of it those are two abnormalities you you don't have any large apartment complexes coming on so what the residual is is mostly infill tear down rebuild so that's why I dropped the number down so much from your your current 140 thank you the podium to my right Rebecca Peterson precinct 16 I just really wanted to make a comment and say I'm thank you for this process but also I'm a former Dallin parent and now an Audison parent and I think since my first year at Dallin as a parent there in 2007 maybe around that time or the very next year there were space issues there were planning problems there were oh we're bursting out of the seams and I know over time at the Dallin just off the top of my head we lost a dedicated science room a computer lab dedicated after school space there might be more I don't know I know other schools are have faced same challenges and worse across town other elementary schools while I hope that the arts programs can be incorporated into a solution the solutions that you're looking at I do want to thank you that the Gibbs is still owned by the town because I feel like without that as an option we would be severely severely out of choices here and I think it's something we have to look at I don't want to say kick anyone out but I think the problem is so huge across the town space wise in the elementary schools and at the now I'm an autism parent of two children and it's terrible there and so I think we just we have to look at everything thank you thank you podium in my left my name is Jessica Conaway I'm a second grade I have a second grader at Thompson School I wanted to recognize Principal Donato who's here with us today she's a great principal and it's a great community so would you stand for us and yeah thank you it's great of her to be here with us and she's got to greet the students early in the morning my primary concern of course is class sizes and the student experience with the second grader I want to reference the comment that an earlier some person made around educational policy I've heard a lot of discussion around numbers demographics capital considerations but I haven't heard a whole lot about the student experience and I think I'd like to request at this moment that Superintendent Bode and the school committee put together some guiding principles for this process and how the students will be impacted both in their access to specials as well as in class sizes the other thing that's really thank you that is my absolute number one concern as a parent also I think all I can think about in this conversation is operating with the addition of all these classrooms of course you're going to need additional high quality teachers and I would like to have paired maybe on a parallel track with the capital considerations how is the district going to ensure that there are high quality teachers in every class that's going to be a little bit of a little bit of a little bit of a little bit of a little bit of a little bit of a little bit more teachers for every classroom of everyone that's added and I'm sure there is a plan for that but as a parent you know those are the things I think about is my child's experience going to be maintained in a modular classroom are they going to have access to gym to science to art and who's going to teach my kid so thank you for taking my questions or my people I think one of the things we've found is that modular classrooms tend to be quite nice thank you very much When we talked about them at the Addison, the teachers were lining up to get into those because they're air conditioned, they're nice, they're big, they're spacious, they're well designed even though they're modular. As for teaching staff, this district is always taking a very serious look at hiring the very best teachers we can. And the reason why you have great teachers in this district and I think that we've got really wonderful teachers in this district is this. We have principals who hire well, we have a central office that supports good teaching, we have a good professional development program. We are within the course of the way we do business, committed to recruiting, retaining, and supporting great teaching in the district, 5,000 students or 6,000. That's really wonderful to hear and I would just ask that throughout this process that that remain a commitment, just as strong and I know it will, but if you could also communicate out to the parent community, you know, how those commitments are being maintained while you're dealing with this bigger issue, that would be helpful to all of us and it would give us comfort that the student experience isn't being degraded while you're dealing with all these others. Oh, I think that everyone in this committee is very dedicated to the student experience in maintaining the high standards. That's why we're going through this, to make sure we have the space required to deliver that product, that our teachers have the best classrooms we can provide for them. No, I hear you and I do appreciate that, I just, I'm asking for communication and so it stops all the time. I'm just saying what you're asking. Okay, well, along the process, not just tonight, but throughout the process. Absolutely, and I'll say it as often as you like. If I stop saying it at some point, call me up, tell me to say it again. I'll take you on that. Thank you. Right podium. Hi, I'm Jennifer Leaguerre, Thompson Mom, District 5, I think that is. I'm here tonight, yes, I'm a Thompson Mom, but I actually got here and delved into those numbers in that report to make my own pictures to understand what was going on. Thanks to the email I got from Linda of the ACA because I care so much about that amazing organic cluster of both big and tiny cultural resources and it worries me that if they were displaced, I just don't see how it could be recreated elsewhere. So I just want to express my agreement with every point that's been made in support of the ACA staying at the Gibbs and other spaces being looked at. But as a Thompson parent who has now looked into these numbers and seen that we're already at capacity and we're foreseen to have to support about 17 percent more kids five years from now. And already we have kindergartners eating at 10 something in the morning for lunch because there isn't room in the cafeteria. We have our fourth and fifth graders doubled up for gym and that's this year. Not two, three, four years from now. And I just wanted to make that point, but about the core spaces because this is about the cafeteria, the gym. These schemes that we have, we might be able to add classrooms, but where is the help in terms of those core spaces, if I could please ask you that question. I agree with you and I think that we touched pace on that on a certain, you know, certainly in Otteson and at the Gibbs for having too many students, right? You can accommodate them in a general classroom, but what about the specialists? What about the shared use spaces and so on? It is a concern. You know, in any of these scenarios before anything would be embarked upon, a study needs to be done and looked at. And so if as you're speaking to specifically Thompson, which is very near and dear to my heart in particular, that the findings are that there's not enough room in the cafeteria or the gymnasium, well then that's a bigger concern. So that has not, you know, been brought to my attention until just this minute. So again, this is why it's all part of a process and a lot needs to still occur. Okay, we have four people online, so I'm just going to ask the last two people online to come over to this podium and at this point will, unless they're sitting down, they're sitting down. Oh, they're walking around. You could have walked in front here. Yeah, and we're just going to go one, two, three, four and then we'll end the public discussion so we can do some concluding business of the committee and get home at a reasonable hour to feed the cat, you know. Sir. Maybe too late for a reasonable hour. Joe Barr, 24 Park Street, third grader at the Thompson School. I guess just two things. One, I guess following up on some of the earlier comments, I'd just like to officially ask that the school committee make the idea of looking at the, now I've forgotten the name of the school, the Giveth School as a second junior high for Hardy and Thompson. If I'm reading the numbers right, there's about 170, 180 students per grade. If you put three grades into that, that's about five to 600. So it seems like it fits its capacity, whether you, however you divide it up and that seems like a reasonable approach and also would solve other problems in terms of transportation and other things that we all want to achieve, I think, out of the school. So just sort of officially make that request if the Giveth School is on the table, which obviously has impacts. But since it is, I think that should be a scenario five or whatever or six or seven, however many you get up to. And I guess the other point I'll just make is that the master plan was mentioned and I was on the master plan advisory committee for the town. And although I might quibble with whether the zoning will actually include housing or not, I think the larger point there is that it's important as you move forward with this process to think about the larger goals that were expressed in that plan in terms of open space, affordable housing, et cetera, et cetera. The school plays, the school system plays a very important role in that. So I encourage you to make sure that as you move from just this early analysis into the real feasibility and planning phases, you include the goals as well as the conclusions of the master plan and your thinking. Thanks. Thank you. And to my right. Mark Rosenthal, 61 at Street. Before I came to the meeting, I obviously didn't know what you had in mind, so I had some thoughts about what you might be thinking. And I ran some numbers of my own. I downloaded Dr. McGiven's report from the web and I took the numbers that I have for the school capacities, subtracted them year by year, and then started the results school by school for each year. The end result is that, let's see, this year, the school that's most overcapacity is bracket. Next year, the school that's most overcapacity is bracket. And on and on year after year, up until 2021, after which Hardy beats it by about five students. That being the case, I found myself wondering, not knowing that you were thinking that Gibbs might be used for an entire grade. I found myself wondering why you would be adding capacity on the other side of town from the area where the demand is the highest. And when you have a building owned by the town that could be used to alleviate some of the overcrowding. So I would like to reinforce the suggestion that you consider Parmenter possibly as another K through five to handle some of the overcrowding at Brackett and Hardy. And that then might make it possible to use only part of Gibbs for whatever, for the rest of the overcrowding, leaving some of Gibbs available for the Arlington Center for the Arts. Thank you. Thank you, to my left. Good evening. Hi, my name is Adam Del Molino. I live at 170 Newport Street, Precinct 10, and I'm on the board of library trustees as well. I'd just like to point out and say thank you. Thank you for taking the time to sit down and listen to everyone in the audience here this evening. I think it's been a great conversation and very important. I don't envy you. I really don't. Arlington is really a victim of its own success. And I think that's by having a conversation and a dialogue like this is so important. I'm a father of a kindergarten at Brackett, but I'm also the father of a one-year-old with Down syndrome. And when I look at this plan and I look at the six different scenarios that you guys are being presented this evening, five out of those six scenarios would move those students and their students. It's not moving the program. It's moving the students from the Brackett to the Pierce School. When my wife and I moved here in 2008, we moved to Newport Street because we're two blocks away from the Brackett. It makes no sense to me why you would have a kid that's going to be going to school and visiting that school every day and following her little sister up the hill with school every day for the next five years. And then she's going to have to go to school all the way across town. It just doesn't make sense to me. If that's the case, if you're going to move the program to the Pierce School, then I hope that the Brackett looks at doing full inclusion for children with Down syndrome at the Brackett School in their classrooms. I guess my message is this.  Embrace them. Embrace full inclusion for those children at that school if that's what your intention is. And just thank you very much. Thanks for taking the time to sit down this evening. We really appreciate it. Thank you. And when my wife and I conclude this program, I think we have one more as well. Well, I asked and cut it off at that. But if it's a very quick question, I'll put you on the 32nd clock. Your name and screen please? I'm just signing in. My name's John Islany. I'm 51 Tough Street, which means. You're across from the Gibbs. Across from the Gibbs. I love the Gibbs. It's also a reason why I moved to Arlington, had a child. And I believe that I was the only person that raised my hand when the question, second question, was asked, are you going to have more kids? So I'm a fight customer. And I really appreciate the fact that we've had all the demographic information and all the study. This is clearly the start of a really long open process in the town. And as a director of student affairs of a well-known school around town, I'm glad that we're going from this point forward to start really thinking about the student experience. Because if these projects were presented at my school, they would be shot down pretty hard. I would also want the school board to make a commitment that if through the process we end up that we do have to do modulars, that we have some sort of commitment from the town or from the school board, that we will have formaldehyde free to the highest environmental standards so that we're not putting our children into chemical baths for a few years before they get into the next school. I think that's a very important component of modular building. I think we've all seen through the famous FEMA trailers and everything. So something to think about as we move forward, if we do end up having to do the being counter option, which I think a lot of people don't want to do, but we may have to do. And in terms of the Gibbs, I have a lot of concern about a single grade solution either at the Gibbs or anywhere else. I think that that is something that is drifting so far away from the purpose of education. And also the issue of we can fit 25 here, 25 there times 24 and do the math. Whoa, we should not be looking at class sizes of 25 if we're gonna be building, all right? Let's start looking at class sizes for a little bit smaller. This is, and I forgot the gentleman's name, he's always got great comments, Ted or Tom. Mr. Paluso. Yeah, yeah. Thank you, you know. When you run for town meeting, you can come and hear him regularly on the floor. I'd like to invite you to a cup of coffee, Mr. Paluso, because many meetings, I always find your comments very interesting at least. I did write down, the first thing I wrote when I saw the great demographic information was, this is great, this is fantastic. If the problem that Arlington has is that we get to build new schools for a new population, then let's do it right. Let's make sure that we figure out how we're gonna do it. And the last thing that I'd like to say is that, and it does reflect a little bit about the fact that, you know, a student without Down syndrome gains immensely from being with children with Down syndrome, et cetera, you know. Well, it's also, the last thing I'll say is, it also has to do with intergenerational experiences. I do not wanna live in Arlington that has a senior center on one end of town and an art center on the other end of town and preschool in the other end of town. If we can come up with some solutions here that maybe have seniors interacting with middle schoolers, I think that that's a great option. I think if we could take a look and maybe if we're gonna have a school like the Gibbs transformed into more traditional education, well, what if it were like an arts middle school? You know, and it only served 350 students, but they were all the artistic students and they had a children's theater in house and they had an art in a center for arts in house and you kind of just kick out the private school and put in the public school kids and keep all the art programming and you'd probably find a decent solution. So, something to think about, you know. So, but I thank you. Ms. Cowles, can you just comment on the quality of portables? Cause that issue was mentioned. I know you've spoken to us in the past about that. Very, very quick response. Cause I want- My question was if they look at me. Oh, wait, you're asking the question. Actually, her question was also about- Well, come on in. I'm Rachelle Dobbs, District 9. I have- What's your name? Rachelle Dobbs, District 9. I have twin boys in first grade at Thompson in a couple of years. I have twin girls coming in Thompson. I'm part of the problem. Yay! And I just feel, sorry, sorry, Arlington. And I just feel whether it's short term or long term, these modules are gonna be part of our school system but I have no idea what they look like. I feel like I would feel better. Is there a place to go where we can see a rendering of what they would look like, particularly these two stories? Like I think of construction worker trailers and that's not where I work with my kid. Like I have no idea what these look like. Is there a place to go? The committee has seen some of this and it's impressive but- Cause I've never seen anything. Can you give a brief explanation of how wonderful these things are? Yeah, I don't know what websites are. Okay, so a lot of people are talking about a lot of different things when it comes to modules. So there's temporary modules, which you wouldn't do a lot of if you're just gonna have it for a year. And I agree with what your assessment, most people, teachers love to be in them because they're air conditioned. So they're very, very popular until they start to leak which happens a few years down the road. But if you're using them as a temporary solution, you would not gussie up the outside. It would look like a metal building. I'll call it a box because they usually come 30 by 30 or some dimension like that. They have all the things that you need. They have flooring, they have lighting, they have ceilings, they have mechanical equipment, all of that. So, and they are not, they do not, wherever that gentleman went, have formaldehyde in them. They are perfectly safe boxes. They're just not designed. They don't fit into the context, all of that. So, back to the idea of putting additions onto the elementary schools. The idea behind that would be if you used modular construction, the reason to use that is it's a little bit faster and because they can do a lot of stuff offsite and bring it to the site. That's generally the idea. What I was layering on in my infinite calculations was gussying them up. They would have brick exterior. They would look like brick building from the outside. And again, we talked a little bit earlier about improved mechanical, improved windows, installation, things like that to make them better for the long haul. So, in that case, in what we're talking about here, it would look like a building. It wouldn't look like something else. Well, sure, so, same kind of idea. The more you do to it, the more you don't know that it was a modular to begin with. I would say the one thing that I can think of that you would know is a difference from the two is that there is sort of a fixed height dimension. So, for instance, at the Thompson School, you have 10 foot ceiling heights in your classroom. You would not have that in the addition. Those additions, probably, if you were lucky, you would get nine. So, there would be that subtle difference because you're dealing with a modular dimension when you use modular construction. But please don't consider me an expert on modulars. So, they are something that you can go online. You can look at them. We've helped a number of communities to put them in temporarily. So, like a temporary modular? When you go online. Oh, oh, I would recommend Triumph Modular. That is a very popular manufacturer. You can go to just about any school in the town of Newton. Lexington High is just standing out. Okay, at this point, I'm going to ask one quick run down the committee for any last questions or comments. Mr. Hayner, Mr. Pierce. Let's move the 10 o'clock rule, please. Oh, we do have to do that, don't we? Motion by Mr. Pierce to move the 10 o'clock rule to 11. Okay, motion by Mr. Pierce. Second by Mr. Steeleman, who's nodding his head. All in favor, say aye. Opposed, six to one, we are extended to 11 o'clock. Further down the line, Mr. Pierce, any comments or questions? No, thank all the people who presented tonight and all the people who came out. Thank you very much. Dr. Allison Ampey. What Mr. Pierce said. Ms. Starks. Mr. Steeleman. Dr. Seuss. Sorry, yeah, I just wanted to add I wasn't necessarily advocating that the Gibbs be a middle school. I was just suggesting that we consider the possibility. I amend the Gibbs almost every day. My kids are at the Gibbs almost every day. I tremendously value the programs that are in there. I just want to sort of open up the possibility to consider. Okay, thank you. And my only last comment would be that the only property we haven't mentioned is the Winchester Country Club. Next item of business is public participation. For anything that has nothing to do with this, did anybody come to talk to us about any other topic? Hearing none, next item after that will be the superintendents report and we'll take about a two minute recess for their room to clear. Quick superintendents report, we'll do the consent agenda, then we'll watch the report in steps, the escalators, and the chairmen. What are the two things? No, I mean the two things. I was gonna hold off the warm crisis, the martyrs left it. Yeah, the martyrs left it, it's an abyss. Thank you. It went off in September one, so yeah. I told them very quickly. Okay, let's see if we can't wrap this up. We're gonna do a very brief superintendents report, followed by the consent agenda, then we'll entertain a motion to adjourn. Superintendent Bode, you have a couple of things to mention. Two things. First of all, I did mention earlier during the meeting that we have been invited by MSBA into a senior study. What that means, it is not a commitment to begin the next process. What it means is that they want to meet with school personnel about, it's a working meeting to. Excuse me, all please suspend, we're conducting business. So I'll repeat this, we were notified a week or so ago that MSBA invited Arlington into a senior study for the high school. What that means is it is a working meeting with school personnel on the conditions of the high school, educational impact. It is not a guarantee that we're invited into the first stage of the process, but it is a signal that they are taking our statement of interest very seriously, and that visit will be happening before the end of September. The second thing is we talked about the Great River Charter School, which was being proposed for this region of five districts. The notice came yesterday that the commissioner is not considering the application for that school. Okay. It's a question that's down there. A question, Dr. Allison Ampe. Dr. Bodie, can you speak to whether the presence of school committee members at this meeting for the MSBA would be helpful? I didn't catch it. Can you tell, is it good for the school committee to be at the MSBA? Should the school committee get involved? I don't think so at this stage. I mean, having a couple of people come just to show the school committee support would be fine. We're going to start with an initial meeting, and then we're going to go on a tour. They already have indicated the types of things that they want to see. They want to know, of course, that there's broad support for this, so we can talk about that possibility. Or the Charter School hearing none. I'd entertain, hear a motion for the consent agenda. All items listed with an asterisk are considered to be routine. It will be enacted by one motion. There will be no separate discussion of these items, unless a member of the committee so requests in which event the item will be considered in its normal sequence, approval of minutes. September 10th, 2015, approval of warrant, number 16039, dated September 10th, 2015, total warrant amount $332,011.12. Approval of trip foreign exchange program for AHS students in French, Quebec City, Canada, trip January 29th through February 1st. Days may change slightly for foreign language students. Moved by Dr. Seuss, second by Mr. Heiner, all in favor. Opposed, unanimous vote. I'll entertain a motion to adjourn, Mr. Heiner. Second. By Starks, Heiner, Starks, all in favor. Good job tonight, thank you very much.


Hi everyone, Joe for Jasper's Case Breaks.com coming at you with 2019-2020 Panini Mosaic Salo Pack Break number 666, scary. At the end of the break, we'll re-randomize everybody's names and the top nine will get into the first off the line break, which is, this sells it out actually. These are the final nine giveaway spots here. But as always, we're going to do the break itself first. So big thanks everyone here for getting into the action. There are the teams right here. All teams are in. Let's roll it. We're going to re-randomize it four and a one, five times for each list. One, two, three, four and a one, fifth and final time. After five, we've got Louie down to Robert. I don't want to search these names, I want to copy those names. All right, there we go, four and a one, five times for the teams. One, two, three, four and good luck, fifth and final time. Cavs down to Golden State. All right, so here's the first half of the list right here. Robert with the gris and here's the second half of the list right here. Adam with the pellets. No trades in little filler breaks like this. Let's just rock and roll. It's print and rip. Good luck, and there's the first off the line box right here that's coming up in a separate video. What's going on here? Once again, the final print out. Thanks everyone for getting in. Good luck with the re-random at the end. Good luck in this little pack right here too. What could be in here? I feel like that's more cards than the other pack. Bonus cards. Here's the Yanis. Yeah, I think you got, I think we got extra cards here. All right, look at that. So we got NBA debut RJ Barrett, rookie card for Louis and the Knicks. We got the John Morant, rookie card for the gris, Robert Runkel. We got a base RJ Barrett right here for Louis and the Knicks. And then there's Tyler Hero, NBA debut for Adam and the Heat. Not bad. The other pack, John Wall Green, Damon Lillard, and Oscar Robertson. Pink Camo. So Rexing, so that means Zion Pink Camo? Is that what that means? There's Bruce, there's Dennis, and it's NBA debut Tyler Hero. I thought Rex was going to be right for a second. Adam Copperman with the Heat gets the Pink Camo NBA debut Tyler Hero. And when a hero comes along. All right, now let's flip over here back to the list Louis, down to Louis and everybody in between. Let's roll it. Let's randomize that list six and a five, 11 times top nine after 11 on the dice roll one, two, 10 and 11 then final time after 11 times is going to be the top nine now from 10 on down. My apologies. I'm going to get them next time. Congrats to the top nine Louis, Chris, Robert, Louis, Chris, Louis, Brian, Josh and Louis. There you go. Top nine you're in. Coming up in a separate video will be that first off the line break. We'll see you for that with jaspyscasebreaks.com.


Okay, that is time. So let's get started. Hi, everyone. Thank you for joining me. My name is Eddie Zaneski. Thank you for sticking around on the last day of talks. I know this is right after lunch, so hopefully we'll have some fun in here. Today we're going to be talking about the cluster killer bug, also known as Learning API and Priority and Fairness to Hardway. Quick bit about me. You can find me on the internet at Eddie Zane. I live in Denver, Colorado. I like to climb mountains. I'm a co-chair and tech lead for Kubernetes 6 CLI, so I maintain kubectl, customize all those CLI things under the umbrella there, and I'm a staff DevRel and open source engineer and I need a new job, so hire me. Thank you. So we're going to flash back to February 1st, 2023, at Cloud Native SecurityCon. Was anyone here at Cloud Native SecurityCon? No, that's okay. It was out in Seattle. It was the first one. CNCF decided to kind of like split off an event into its own and it was a good time. And I was out with a bunch of coworkers doing some karaoke late at night, and I had a media interview with the new stack the following day, so we were going to go through some of the new stuff that we were working on, some of the new controller stuff we were building, and I snuck out of karaoke to go do some last-minute prep in my hotel room at night, and just like all good things, nothing was working. I had no idea what was going on. I thought it was a network. I thought it was a computer. My requests were timing out. None of my demos were working. Everything just kind of seemed broken. And so I did what anyone would normally do. I deleted the cluster and made a new one, and everything worked, and I was pretty happy with that, and then I went to bed. And I woke up in the morning and tested it out again, and it was broken again. So here I am, probably like two or three hours before I'm supposed to do an interview, and my demo wasn't working. So we pushed the interviewer back to the afternoon, thankfully. New stack is awesome, if you ever work with them. Did a bunch of triage. Just trying to figure out what was wrong really quickly. Learned a lot of things about what to do in the moment when you have to get on stage and do a demo. And thankfully, we managed to get everything working. Still didn't know what was quite wrong, but I was able to do the demo after basically barely any sleep and a very stressful day. So I have a little clip I'll play for you of the beginning of this. See if you can see how frazzled I was during this interview. There used to be this advertisement that was like popular in Northwest for Rainier beer, they go rain. Is that ring a bell? No. Okay. But I want some now. So advertising works. Okay. But Alex from the new stack is great if you've never read him before. So like I said, thankfully, we were able to pull this off, but it was a long stressful two days trying to figure out what was going on. And so I have some early takeaways from all of this and we'll get into the bug. We'll get into everything that was going on. But the early takeaways was I should not have deleted that cluster from the beginning. I kind of should have put it on the back burner and like left it around to introspect later so I could compare and contrast. So don't be too quick to pull the trigger and blow it away. I know that's what you all want to do is does it work if you turn it off and on again, right? Try not to do that. Start ruling out what you can as soon as possible. So going through the logs, going through the metrics, going through everything I was trying to rule out like what could actually be wrong with what I was seeing. Think out loud whether this is with people around you or in Slack. Just kind of type out your thoughts, screenshots, pastes, snippets of metrics and stuff. Do this as you're going. And then glance at the logs and metrics. I say glance here because especially if you don't quite know what you're looking for and your logs aren't always obvious, you could spend a lot of time reading log lines that you've never seen before and think that every single log line could be what the problem is. So take a good glance but don't get too caught up in the logs and metrics when you're first trying to get through this stuff. And your goal is to try to reproduce the issue that you're running into. You don't really have to understand what's going on. Again, I'm coming to set a frame of, you know, I have like three hours before I need to go and demo this thing. So I can't actually dig into everything that's going on. So you want to try to figure out like what causes this bug to happen so you can build and work and avoid it. So what was I demoing? So the controller, it was a admission controller that we built. It was built around the six-store policy controller. Anyone familiar with six-store? It's a Linux foundation project part of the open SSF for signing and verifying software artifacts. So you can do supply chain security policies to say I only want containers that are signed by these images or don't contain these known vulnerabilities or dependencies. So it was built around the six-store policy controller, which is open source. It opened a lot of long-lived connections to the API server. It did what's called a watch, if you're familiar. It's basically just like a very long-lived request that kind of streams responses back from the Kubernetes API server. It was built with Knative serving, which anyone built a controller before or used Knative. It's a lot of fun. It's a pretty, building a controller from scratch is fun. You kind of learn all the knobs and then you reach out for Knative and never think about the primitives ever again because Knative does everything for you. So there's a bit of magic baked in there. And the very unique thing about this controller is it had the ability to run what we called agent lists. We were a security company, and when you have a security product, you generally need to run a sidecar or an agent on your customer's servers or clusters. And this was something we heard from a lot of customers was that they didn't want to have to run these sidecars or these agents. They really didn't want to have to install yet another agent on their clusters. So we designed a way to run our controller's agent lists. So stepping back a bit, what does that controller actually look like? Well, we have the Kubernetes API server, which is the heart of all things. And we have the controller, which in our case was a Go binary, but it could be built with anything. But these ideas of these few components that make up a controller. So you have your client that can talk to the API server. You have your work queue that's kind of listening to those events coming in and putting them on a queue that the controller can process and reconcile. You have these informers and Lister caches. This is kind of just opening those long live connections to the API server and kind of listening for all those pod events, all those node events, all those config maps you're creating. And then it caches them. When you do a list operation on a Kubernetes API server, it has to go to Etsy D and query all the values out of Etsy D. And it's probably one of the most consuming requests that you can make the Etsy D as a list. You have to get back a ton of information. You can't use like Etsy D is a key value store, right? So now you can just look up a nice single key of an O of one operation. You have to get a huge list. And so that's what we have this like Informer does caching. And then everything runs in a reconciler loop. So this is the loop saying I'm going to take something off the queue, do some work that needs to be done, maybe like monitor a new thing or enforce a new policy and then pop it off. And so the way we made this agent list was we actually built a proxy that sat in front of everything and we registered an off cluster mutating admission webhook. So Kubernetes, if you're not familiar with mutating admission webhooks or any sort of admission controllers, you can register one with your cluster. It sends events and requests to it and you respond whether or not something should be come in. So if you say I don't want a pod named Dave to ever run on my cluster, you can write a admission controller for that. You get a request when a new pod comes in and you can check the name, see if it's Dave rejected or not.  You see this some other cluster bit.  It's very novel. It worked pretty well. So what we saw when this bug was happening was the cluster appeared just super dead. Just like all those requests were timing out. We weren't able to pull any of the metrics up. We weren't able to pull any of the logs. None of the pods were responding to requests. Everything just appeared dead. Client requests were timing out. So if you made a cube control request or any sort of other client request, it would just time out. It hit with the one minute context deadline and just pop you out with the 504. The GKE dashboard was dead. This was the very interesting one. Have you ever seen the GKE dashboard before? It could show you like your nodes and your storage and your pods. When we loaded it up, I have a slide for it in a bit, but it was just it was dead. It was showing us no data was available and throwing some errors. After some debugging and triaging, we realized that this happened after four to six hours of our controller being installed on your cluster. Four to six hours later is when we'd start seeing the spikes and the traffic dropping. We named this the cluster killer bug because it would brick a Kubernetes cluster as far as we could tell. It visibly only affected Kubernetes 125, which was the unique piece. It only happened on GKE. We also did a bit of AWS testing. The whole thing with the agent list was it did some funny I am impersonation to be able to do that off cluster traffic and that proxying. We were only able to actually see this with GKE. It only affected agent lists. So when the cluster was running, the agent was running off the cluster as opposed to on it. And the only solution seemed to be deleting the cluster and recreating and reenrolling it. And when you're a services company and a security company, this is not an acceptable solution for your customers who clusters you bricked. We can't be bricking customer clusters. So this became a pretty top priority to figure out. Thankfully, we didn't have anyone using agent lists on GKE at the time. So we had a little bit of headway. We had AWS agent list users. So it was good for the time. This is what it looked like when the GKE dashboard died. You can see there it's like we can't make any requests. Kind of strange. Looking through the logs, you know, when you're looking at logs that you're not familiar with that you really haven't dug into before, every single log line that you see could be what's wrong. This was something that was going on with the list and watcher cache of the six-door policy controller. It was giving us like a timeout, allowed request, and then initializing. So we spent a bunch of time trying to dig into was it the policy controller and what's going on with the Knative Listers? Then you wind up with log lines like this. This is just kind of like a full-on stack trace, which is great to have when you're debugging. Not something you wanted to see returned in a response sometimes. We tried not to leak state like that. I'm not even going to try to explain what's in there. It's just a full stack trace of the API server. Looking at the metrics, the only thing that was notable was the API server memory. It would kind of spike and then drop down and spike and drop down. This is over the period of what is that? 27 days in April of a cluster. It looks relatively normal. You have some spiky traffic bits, and then you have some lows. But this kind of gave us a good place to start. It was like, why is the API server ooming itself? Obviously, you assume that those dips are the API server being oomkilled or restarted. Our first theory, we dug into the change log between 125 and 126 because, again, we couldn't reproduce this on 126. We found a change that came through. It was the admission controllers can cause unnecessary significant load on API server. Spend a ton of time trying to dig in and understand this change. Really couldn't see how this would impact what we were doing. We ruled this out. Just so some lessons from all of that. Have a baseline of what your logs and metrics look like. Obviously, if you're doing a demo cluster, you're not going to have this. But like I said, keep those around. When I went in there to debug those logs, and I saw those random stack traces and those random reconciler errors, to me who had not worked on this product before, I was not aware of are these normal or are these not normal? It's good to have a baseline of what you're comparing against. Of course, being able to compare historically with your metrics helps a ton. Slow down. Trying not to rush. Like I said, this was a, we were kind of racing the clock here where thankfully there were no customers that would encounter this at the time, but we were a small startup that was growing quickly and who knew who would want to use it.  Get creative and experiment. This is ultimately what led us to figure out what was going on.  Try things that sound crazy. So this is going to be kind of small, but the trying crazy piece is how we were able to actually get a lead here. And so I don't think I can zoom in too much now. But what you can't see at the top line there is it is a HTTP get to API slash foobar. This was me just randomly throwing things out of tube control at the API client with a little raw query. And we saw this log line show up in the API server. And this was different than all the other timeouts and log lines we were seeing. This was a four or four not found, which compared to all the other responses we were seeing when the cluster was seemingly bricked, the fact that we are able to see a response like this was a lead. So we knew that the API server was listening. It was responding because it was able to tell us that the resource was not found. And then we got even crazier. We wound up SSH-ing into the nodes, set up some certs, was able to talk to the API server directly with no other cluster traffic to talk to the API server. So the nodes were perfectly healthy. That was one of the other things with all the metrics. Everything looked healthy aside from that little bit of memory spiking. All the request times, all of the processing, the CPU utilization, nothing really seemed out of the ordinary. We were just kind of in a weird magic black box state. So when we were able to talk to the API server and have instant responses, this gave us a good lead. And from here we were actually able to dump all of the metrics. So if you haven't done with kube control before, you can do a kube control get dash dash raw. And you can make raw API requests and it includes your alt headers. So we were able to make requests to dash dash raw slash metrics slash logs and get all those actual metrics and logs we weren't able to get from the GKE dashboard and log exporter. And then we found a little bit more breadcrumbs once we started being able to pull these logs. The one that really stuck out to us was this too many requests line. And from what we were seeing with, again, we weren't getting responses from the API server or they were timing out. And then to see too many requests coming in, well, what was that? What is telling us that there's too many requests? Were there too many retries? The API server didn't look flooded, so what was going on with this too many requests? So to take us a little step back, I want to talk briefly about API server tuning. This is something that most people probably are never going to have to touch or have access to. The two flags that you would set on the API server are max requests in flight and max mutating requests in flight. And this is how the API server can be set to the max number of inbound requests at a time. These are hidden from you if you're using a managed Kubernetes service. You usually don't get access to the logs. Thankfully, if you look at GKE, you can see these flags printed out at the top of your API logs.  And so here's actually all the flags that are set on my GKE cluster when it starts up with the API server. I don't know if there's many other providers that do this, but I wish they did. This saves a ton of time, so you can see. And if we look in here, we can see that max, what is it, max? Max requests in flight is set to 60 by default and max requests in flight mutating is set to zero. So zero here means unlimited. So we should technically have these unlimited requests coming in, and the max request in flight is 60. That's pretty decent, especially for the response time around trip. And so these are the two dials that you would be able to tune if you had access to the server flags, but you can't. So out of that, we built a feature into Kubernetes called API Priority and Fairness. Anyone familiar with this? A few people? Cool. Quick summary from the docs. The API Priority and Fairness feature is an alternative to those two flags I mentioned that improves upon aforementioned in flight limitations. APF classifies and isolates requests in a more fine grainway. It also introduces a limited amount of queuing so that no requests are rejected in cases of brief bursts. Without APF enabled, overall concurrency in the API server is limited by those two flags. And with APF enabled, the concurrency limits defined by these flags are summed, and their sum is divided up among a configurable set of priority levels. Each incoming request is assigned to a single priority level, and each priority level will only dispatch as many concurrent requests as its particular limit allows. So when we came across this while looking through API tuning, rate limiting in the cluster, this obviously sounded like something that we were seeing, right? So quick background on APF. It was a beta feature that was released in Kubernetes 120. It's currently at a beta v1 v3 still. I don't know when it's planned for GA. It is enabled by default as of 120, so your clusters will have this unless they're opted out. I don't think any of the cloud providers opt out, so you're most likely have this feature enabled. It's how you control traffic in an overloaded situation, so this is intended for you to prioritize different types of traffic so that when you are having backed up or a massive burst of requests to your cluster, that those important requests get through. Think in this case of your metrics endpoint, your logs endpoint. You always want those responses to be, I mean, those endpoints to be available, even when the API server is bogged down trying to list a thousand different config maps or something. And what I've really taken away from APF is it doesn't matter until it does. This is one of those features that probably 90% of people who use Kubernetes are never going to have to think about or touch until you run into it and it becomes an issue. So, spoiler, if you couldn't tell from the title, this is actually what we were running into with the bug we were saying. So, there's two resources that are part of the flow control schema for API priority and fairness. The flow schema is what defines the who and the what of your cluster traffic. So, this is very similar to how RBAC does it. So, you have your subjects, which are user service accounts or groups, and then resources slash non-resources, which are your group version resources, so your pods, deployments, and your paths, so slash metrics. It has a matching precedence built in. So, this is where you can elevate certain policies for certain requests. And there's some built in ones that we'll take a look at in a second. And so, the flow schema maps to a priority level configuration. So, you define this flow schema. Here's an example of what it looks like. So, this is going to map everything from the service account demo, every single type of request. So, non-resource URLs and resource URLs. And it's going to map all of these requests at the 1000 priority level to the priority configuration name demo. You see that mapping there. Priority level configuration. So, this is the, it has two different types that you can figure at the top level. It's either limited or exempt. So, you can exempt traffic from a policy. So, you can say, hey, none of this stuff ever gets rate limited. It should always have priority. And then when a rate limit hits, or the concurrency limit hits, you can choose between queuing those requests or rejecting them. Two different types. And these are the knobs to turn for your tuning. So, here's what one of those policies looks like. You can see the queue, the limited, and then all those knobs that we're going to talk about. So, the queuing configuration has four main knobs that you tune. And so, this is the V2, beta V2 version. Beta V3 made a few changes, which we'll talk about in a little bit, but this one's a bit easier to understand. So, assured concurrency shares. These are kind of like your seats for your concurrent connections. These are the number of concurrent requests that are allowed to be executing. And we say seats loosely here, and we'll talk about that in a second. Hand size. So, the way this works is with the fair queuing algorithm. There's lots of white papers and Wikipedia pages that I tried to understand. Essentially, what hand size means is, out of all of your queues, it's going to randomly pick one. And from how it picks one is it is dealt a hand. So, it will pick, maybe your hand size is four, so it will pick four queues, and then randomly pick from those. And this is hopefully to stop it from starving out particular queues. Your queue length limit is how big the queue is, so how many requests can be in a given queue, and then queues is your number of queues that you have. So, when you want to increase queues, you reduce the rate of collisions between those different flows at the cost of increased memory usage. A value of one here effectively disables fair queuing logic, but it still allows requests to be queued. Increasing queue limit allows larger burst traffic. So, this is where you're responding to larger burst requests coming through. Again, it's hopefully so you don't drop any requests at the cost of higher latency while those requests are in queue and more memory usage to hold them in queue. And changing hand size allows you to adjust the probability of collisions, so you have a different hand size to choose from out of all those queues. So, there's two built-in levels, well, there's several built-in levels, but there's two that are worth talking about. The workload low priority level is for requests from any other service account, which will typically include all requests from controllers running in pods. And then there is the global default priority level. This is basically all other traffic from your clients and stuff. So, if you make a cube control command from your laptop, it is going to hit global default. This is for authenticated users. There's also a catch-all bucket, and that is usually for unauthenticated types of requests. So, these are the two that you really work with. Most of your traffic that runs on your cluster, inside of your cluster, your controllers, are going to hit that workload low priority queue. There's a few special cases to talk about. When I said the assured concurrency shares, the list request is a very consuming request to the API server in that CD because, again, it has to walk over those keys. The way lists work is it kind of estimates how many keys are going to be returned, and it kind of picks the number between that to figure out how many shares a single list request will use. So, when you think of these, they don't map one to one, generally. And then there's the watches. Watches are those long-lived requests to the API server to listen for those events back. The watches generally take up a few seats when they first start, and then they are considered not taking seats while they are sitting and waiting for events to come through. And then there are special groups like the system masters, which always get prioritized to top-level traffic. So, this is a policy from the docs. This isn't one that's included by default, but this is one they recommend everyone have, which maybe should be installed by default, but we could discuss that. So, this is what would prioritize all of your health checks, readiness checks, and liveness checks to be always allowed by system unauthenticated users. So, this is for your scraping of your metrics and your health checking. So, this is a policy that you probably want to have in your cluster if you don't already. It's not there by default, and this would exempt all of that traffic. So, it does open the possibility for you to be DDoSed or smack down on these endpoints, but, again, if something happens, you do want to be able to prioritize these paths. Quick look at what these levels look like. You can see the catch-all, global default ones I mentioned in there, the assured concurrency shares, all the cues and stuff. So, you kind of see the scale of what we're talking about, what these look like by default. The way that the concurrency limit is calculated in the clusters, we sum up these concurrency shares. So, in our example here, we have 245, and then we take our two flags that we had before, the default values I'm using here are 400 and 200. You pick a priority level, which workload low has 100 concurrency shares, and then you do this equation. So, you take the two numbers, add them, divide them by the ACS value for the total cluster, multiply that by the ACS for the priority level, and that's how many requests per second your particular priority level is allowed in your cluster. So, this is much more visible and configurable for you as a user. So, for example, what happens when you change these values? So, if we say that we add another priority level with an ACS of 55, that brings our total ACS to 300, do the math, we have 200 requests per second from the previous total, and now once we have our new share in, we have 110. So, we go from that 244 requests a second down to the 200. So, we lost 45 or whatever it was, requests per second, 44 requests per second. So, adding more priority levels, you can prioritize traffic to different levels, but it brings all of your overall max requests per second down. So, that's something to consider. In 126, it actually, again, it doesn't really matter, it makes it a lot better. So, I have a demo to show you. I have a quick program I wrote. This is a kind of a, just a blaster go program, pulls out client go, disables all the local client side limiting, and then fires up 100 workers and makes a ton of infinite list requests. So, we're going to fire this off of my cluster. I want to show you the APF policy we have configured right now. So, we have 30 shares, Q size, blah, blah, blah, and so this is just targeting my demo user. So, this is the one you saw before. So, this is what's set up. So, if we fire this off, we're going to open up our watch here, and Internet works, cool. So, what you're looking for in this request is this number going up right here, which I think the Internet is fighting me here, but you can see it climbing. So, this is the request, the total requests that are being made to my cluster for this particular flow. And you can see that that number is climbing, and then we have the number of requests currently executing up here. So, there's seven, and then in queue requests, they are, there's 64 right now, right? So, this is just refreshing as we go. So, currently, we're handling the load, actually. I'm not getting any errors reported. My queuing is working out. This is finally tuned for this application. But now, if we start to kind of tweak those numbers, and we say, let's just make everything one. And so, now, we're going to start, you can see we immediately drop, and that's one of the cool things, this is all applied, and we can figure it on the fly. We love Kubernetes. But you can see now that my requests are being rejected, and my reason bucket here for the queueful is starting to rapidly climb. And if we pop back to our sample app, we can see that we are getting, this is a 429, or 429, some 409. The servers receive too many requests and ask us to try again later. So, this is APF working as intended. My policy is rate limiting, and I'm getting responses back on my client. Cool. And so, we could play with that and tune that, but you get the idea. So, what was the original bug? Well, off-cluster traffic was getting bucketed into global default, right? That is what happens with global default. Our controller's traffic should have been in the workload low bucket as we saw. And so, what was happening was all of our requests were kind of backing up, and all of our retries were getting stuck, and we filled up the global default bucket. So, when we went to make requests from kube control, when we went to go look at our external monitoring, everything seemed dead because the requests were just sitting in queue and getting kicked out. The fix follow is to create APF resources. Pretty straightforward. Again, not something you need to worry or know about until you do. And so, the question is, when would you actually want to create these resources? Well, definitely when you're being clever and running things off of a cluster. But a good example would be if you have a controller that constantly makes list requests to your API server, right? You might want to bucket those or queue those up so they don't starve the controller, and maybe only want one of those executing at any given time to list all of your, you know, thousands of config maps or whatever you have. So, there is a reason to know about this, to tune for things that you're seeing in your metrics. So, when you're looking through your Grafana and your logs, and you notice things might be backing up or failing, this is when you'd be able to apply a policy to kind of even that traffic out a bit. And again, you can do this by service account or user or namespace. So, a couple other questions. Why did this not work on 120, yeah, why did we not see this on 126? Well, that's because 126 introduced a new feature for APF called borrowing. Borrowing is added a few new fields. So, the borrowing limit percent and lendables percent, this allowed APF policies to borrow and share from other buckets that weren't full or whose queues were empty. You could specify a percentage on these values to tell you how much you could borrow. So, again, we were in 126, our bucket was getting full, but because it could borrow from all the other buckets, we didn't actually see this behavior. So, this is rad. It also changes the nominal concurrency shares from the ACS to the NCS. And there's a complicated formula that's explained, but the TLDR is bigger numbers mean a larger nominal concurrency limit at the expense of every other limit being prioritized down. So, last question. Why did the GKE dashboard die? Well, this was a fun one. I don't know if you can see that, but the GKE dashboard was landing requests into the global default bucket. I think this is fixed now, but yeah, that's why when we would load the GKE dashboard up, it would look like it was dead and led to our believing the cluster was dead because their requests were getting bucketed with all of the other off-cluster traffic. So, again, I'm pretty sure that they fixed this now, which is good. There was a fun side quest where our API token didn't have the email scope permission, so we're getting back these Google guy IDs. These are like internal IDs for Google. Not like a problem or anything, but when we were trying to write a policy, we ran into numbers instead of the surface count emails we were looking for. So, if you ever run into that, just always include the cloud scope in your Google IM and the email scope. Couple minutes left. The more lessons learned. Being clever means you need to do more research. This is something that we didn't know about before we ran into it. So, yep, you have to spend time to figure out and understand things. We need new people to test these features and give feedback. In writing and preparing for this talk, I was going to do this on a 128 cluster, but I actually found two new bugs with APF that we're going to get filed and fixed, which is cool. So, if you all haven't played with these knobs or any knobs in general, go out there. We as maintainers don't really have a direct line to the community other than the people who show up and report bugs. So, when you read those blog posts or those release notes and they say, hey, we need people to test these features, we really do. So, please help us out. Read the docs and release notes to understand what's changing between versions. And again, get involved upstream. There's lots of us that work on fun, cool stuff like this. So, if you want to know where to get started, feel free to hit me up or anything. This isn't solved, actually. We, there's still an open bug that we need to figure out. We were not getting back 429s like we should have. We were getting back 504 timeouts. So, I'm pretty sure that the switch to sharing the buckets for 126 is simply hiding a bug that I ran into in 125. So, hopefully no one else runs into this, but we are going to dig into it at some point. But there's still a bug out there. A couple of shout-outs to the bunch of people who helped me while solving and fixing this. Jordan, Mike, and Billy, they're all awesome. And I am out of time, actually, right on the dot. So, I'll hang around here outside to answer any questions. Please scan the QR code and give feedback. And yeah, thanks for coming and listening to me ramble. This was fun.


Belarus President Alexander Lukashenko greeted leaders of CSTO countries who arrived in Minsk on November 23 to attend Collective Security Treaty Organization Summit, taking part, are presidents of Russia, Kazakhstan, Kyrgyzstan and Tajikistan. Armenian Prime Minister Nikol Pashinyan failed to show up amid rumors that Yerevan was mulling idea of quitting CSTO, although Armenian flag adorned the venue alongside the flags of other member states, the leaders discussed the issues of collective and international security including formation of the joint air defense to protect the member states. Belarus is the current chair of CSTO and will hand over the presidency to Kazakhstan for the next year.


Chapter 20 of The Book of Saints and Friendly Beasts This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. Recording by Larry Wilson. The Book of Saints and Friendly Beasts by Abby Farwell Brown. St. Francis of Assisi Barefooted in the snow, bareheaded in the rain, St. Francis wandered up and down the world smiling for the great love that was in his heart. And because it grew from love, the smile of St. Francis was a wonderful thing. It opened the hearts of men and coaxed the secrets of their thoughts. It led human folk, whithersoever St. Francis willed. It drew the beast to his side and the birds to nestle in his bosom. It was like a magic charm. Great Princess knew his smile and they obeyed its command to be generous and good. The sick and sorrowful knew his smile. It meant healing and comfort. Then they rose and blessed God in the name of St. Francis. The wretched beggars in the streets of Assisi knew it. To them the smile of the Lord's own beggar meant help and sympathy. Like them he was poor and homeless, often ill and hungry. They wondered that he could smile, but he said, It does not become a servant of God to have an Arab melancholy and a face full of trouble. So they also tried to smile, poor fellows, but how different it was. The little lambs to whom he gave his special protection and care knew the smile of St. Francis. Once he met two woolly lambkins who were being carried to market. He never had any money, but taking off his cloak which was all he had to part with, he gave it to buy their lives. And he carried the lambs home in his bosom. The wildebeest beyond the mountains, the fierce wolves and shy foxes of Syria and Spain, whom he met in his wanderage knew St. Francis. Here he was a brother who was not afraid of them and whom they could trust in return. A brother who understood and sympathized. The birds in the trees knew also, and his coming was the signal of peace. Then they sang with Francis, but he was the sweetest singer of them all. Besides these living things, the green fields of Italy, the trees, the meadows, the brooks, the flowers, all knew the smile of St. Francis. It meant to them many things which only a poet can tell. But Francis understood, for he was a poet. Upon all alike his face of love beamed tenderly. For St. Francis of Assisi was a little brother of the whole great world and of all created things. Not only did his heart warm to brother sheep and sister bees, to his brother fish and his little sisters the doves, but he called the sun and wind his brothers and the moon and water his sisters. Of all the saints about whom the legends tell, Francis was the gentlest and most loving. And if he prayeth best who loveth best, all things both great and small, the prayers of St. Francis must have been very dear to him who made and love of all. There was none so poor as Francis. Not a penny did he have, not a penny would he touch. Let them be given to those who could not smile, he said. His food he begged from door to door, broken crust for a single poor meal. More he would not take. His sleeping place was the floor or the haymow, the ruined church, whatever lodging chance gave him. Oftenest he slept upon the bare ground with a stone for his pill. He wanted to be poor because Christ was poor and he was trying to live like his master. In his coarse brown gown tied about the waist with a rope, without hat or shoes he wandered singing, smiling. The love which been from him like radiance from a star, showing back from every pair of eyes which looked into his own. For all the world loved Francis in the time of the Crusades. And even today, seven hundred years since that dear beggar passed cheerly up and down the rough Italian roads. Even today there are many who love him like a lost elder brother. St. Francis preached to all lessons of charity in peace. His were simple words, for he had not the wisdom of many books. But he knew the book of the human heart from cover to cover. His words were like fire. They warmed and wakened. No one could resist the entreaty and the love that was in them. So thousands joined the society of little brothers of which he was the founder and became his helpers in works of charity and holiness. His church was out of doors in the beautiful world that he loved, in mountain, field or forest, wherever he happened to be wandering. Sometimes he preached by the candlelight of stars. Often the cloistering trees along the roadside made his chapel and the blue sky was the only roof between him and heaven. Often his choir was of the brother birds in the branches and his congregation a group of brother beasts. For he preached to them also, who though they spoke a different language were yet children of his father. And in his little talks to them he always showed the courtesy which one brother owes another. Once on returning from a journey beyond the sea he was traveling through the Venetian country when he heard a great congregation of birds singing among the bushes. And he said to his companion, Our sisters and birds are praising their maker. Let us then go into their midst and sing. So they did this and the birds did not fly away but continued to sing so loudly that the brothers could not hear each other. Then St. Francis turned to the birds and said politely Sisters, cease your song until we have rendered our bounden praise to God. So the birds were still until the brothers had finished their song. But after that when it was again their turn the birds went on with their song. At another time when he was preaching in the town of Alvia among the hills the swallows flew about and twitted so loudly that the people could not hear St. Francis' voice. The birds did not mean to be rude, however so he turned to the swallows and saluted them courteously. My sisters he said, It is now time that I should speak. Since you have had your say listen now in your turn to the word of God and be silent till the sermon is finished. And again the birds obeyed the smile and the voice of him who loved them. Though whether they understood the grown-up sermon that followed I cannot tell. But this is the little sermon which he made one day for a congregation of birds who sat around him in the bushes listening.  It was not a long sermon so the birds could not have grown tired or sleepy and I am sure they understood every word. So after he had given them his blessing he let them go and they went singing as he had bitten them. St. Francis preached the lessons of peace. He would not have cruelty or bloodshed among his human friends and he also taught his beast to be kind. He loved best the gentle lambs one of which was almost always with him and in his sermons he would point to them to show men what their life should be. But there is a story told of the lesson he taught a wolf that shows what power the saint had over the future animals. There are many stories of wolves whom the saints may tame but this wolf of St. Francis was the most terrible of them all. This huge and savage wolf had been causing great horror to the people of Goobio. For in the night he not only stole sheep and cows from the farms but he came and carried off men also for his dinner so that people were afraid to go out of the town for fear of being gobbled up. Now St. Francis came and he said I will go out and seek this wolf but the townsfolk begged him not to go for the good man was dear to them and they feared never to see him again. However he was resolved and went forth from the gate.  Then St. Francis made the sign of the cross and said gently come hither brother wolf I command thee in Christ's behalf that thou do no evil to me nor to anyone and wonderful to say the wolf grew tame and came like a lamb to lie at St. Francis feet. Then Francis went on to rebuke him saying that he deserved to be hung for his many sins being a robber and a wicked murderer of men and beasts. But I wish brother wolf he said to make peace between thee and men therefore vex them no more and they will pardon thee all thy past offenses and neither dogs nor men will chase thee anymore. At this the wolf wagged his tail and bowed his head to show he understood and putting his right paw in the hand of St. Francis he promised never again to steal nor slay. Then like a gentle dog he followed the holy man to the marketplace of the town where great crowds of people had gathered to see what St. Francis would do with the great beast and their enemy for they thought he was to be punished but Francis rose and said to them Hark and dear brethren brother wolf who is here before you has promised me that he will make peace with you and will never injure you in any way if ye promise to give him day by day what is needful for his dinner and I will be surety for him. Thereupon with a great shout all the people promised to give him his daily food again the wolf wagged his tail flapped his long ears bowed his head and gave his paw to St. Francis to show that he would keep his word all the people saw him do this and then there were shots of wonder you may be sure and great rejoicing because St. Francis had saved them from the cruel beast and had made a gentle friend of their dreaded enemy so after this the wolf lived two years in Goobio and went forth from door to door humbly begging for his food like St. Francis himself he never harmed anyone not even the little children who teased and polled him about but all the people loved him and gave him what he liked to eat and not even a dog would bark at his heels or growl at the friend of St. Francis so he lived to a good old age and when after two years brother wolf died because he was so old the citizens were very sorrowful for not only did they miss the soft pat of his steps passing through the city but they grieved for the sorrow of St. Francis in losing a kindly friend St. Francis of whose saintliness and power the humble beast had been a daily reminder Francis could not bear to see a little brother in trouble or pain and this the beast knew very well he would not be willing to tread upon an insect but would step aside and gently bid the brother worm depart in peace the fish which a fisherman gave him he restored to the water where it played about his boat and would not leave him till he bade it go once again in the village of Gubio a live baby hare was brought him as a present for his breakfast but when Francis saw the frightened look of the little creature held in the arms of one of the brothers his heart ached with sympathy little brother levered come to me he said why has thou let thyself be taken and the little fellow as if understanding the invitation jumped out of the fryer's arms and ran to St. Francis hiding in the folds of his gown would when Francis took it out and set it free very politely giving it permission to depart instead of staying to make a breakfast it would not go again and again it returned nestling in its new found friend as if guessing that here at least it would be safe forever but at last tenderly St. Francis sent the good brother away with it into the wood where it was safe once more among its little bobtail brothers and sisters now after a life spent like Christ's in works of poverty charity and love St. Francis came at last to have one spot in the world which he could call his own it was neither a church nor convent a cottage nor even a cell it was only a bare and lonely mountaintop where wild beasts lived and wild birds had a home this retreat in the wilderness was the gift which Orlando a rich nobleman chose to make St. Francis and it was a precious gift indeed sorely needed by the Lord's weary beggar for he was worn with wandering he was ill and weak and his gentle eyes were going dim so that he could not go along the winding ways but he was happy still so one warm September day he went with some of his chosen brethren to take possession of their new home they left the villages the farms and at last even the scattered shepherds huts far below and behind them and came into the quiet of the Italian hills they climbed and climbed over the rocks and along the ravines till they came in sight of the bald summit where Francis was to dwell and here in happy weariness he paused to rest under an oak tree and look about upon the beautiful scene but suddenly the air was filled with music a course of trills and quavers and carols of the wildest joy then the air grew dark with worrying wings the birds of the mountain were coming from everywhere to welcome home their brother they flew to him by hundreds perching on his head and shoulders and when every other spot was covered they twitchered into the hood of his brown mantle the brother stood about wondering greatly although they had seen St. Francis in some such plight before but the peasant who led the ass which had brought St. Francis so far stood like one turned to stone unable to believe his eyes here was a miracle the like of which he had never dreamed but St. Francis was filled with gladness dearest brethren, he said I think it must be pleasant to our Lord that we should dwell in this solitary place since our brothers and sisters, the birds are so glad of our coming and indeed how could they help being glad of his coming the dear kind saint and how they hovered around the shelter of the branches which the brethren built for him under a beech tree on the very mountaintop with them at morning, noon, and night joining in his songs of praise or keeping polite silence while the holy man talked with God many wonderful things happened upon the Monte Alverno while St. Francis dwelt there but none were more wonderful than the great love of Francis himself his love which was so big and so wide that it wrapped the whole round world binding all creatures more closely in a common brotherhood so that every man and every bird and every beast that lives ought to love the name of that dear saint their childlike simple happy little brother St. Francis of Assisi End of Chapter 20 End of the Book of Saints and Friendly Beasts by Abby Farwell Brown


confidence is there when John Carlos Stanton steps to the plate in that situation considering how he's been swinging the bat yeah a lot he is in a great spot having good at bats obviously the home run tonight and then smokes the game winner right there was on a pitch earlier in the game that he just missed that he popped up to kind of shallow left I thought he got off a great swing got what he was looking for just you know he's he's locked in and focused and carrying out his plan really well right now and you know that was a huge hit against against Tate who is a really tough righty righty guy you know that's why he's bringing them in there to face those righties in those spots it's a tough matchup and and he put a really good swing on it earlier in that inning with play homes on the mound he got himself into quite a situation runners on first and third nobody out just what did you think of the way he was able to bear down and keep the score even it was huge because Santander there was a tough matchup for him from the you know his better sides the left side and he's able to get him out that was huge to get the pop up there you know and then you know he then he really went to work on those next two guys and was was was rock solid but a huge huge performance by him to wiggle out there just how much of an asset is it to have a guy like Tyler Wade on the bench and on the in situations like you had there in that 10th inning I mean huge I mean that's such a good you know it's a good send because you know he's charging out there and right Santander it's right to him he gets into shallow right he gets in great position to throw and Tyler is absolutely flying it looked like he had a perfect route around third base and he needed every bit of his speed to beat that throw but yeah it was it was you know his speed is one thing but it was really good base running great jump great route and he needed all of it. Go next to Brian Hoke. And you guys have played in a ton of tight games this year and you've won a lot of them what what is the effect that has on a team especially as you're looking to get to the postseason. Well the one thing I would say Brian is is we're comfortable in those spots. I do feel that way like no matter how tight the situation how close the game is when or lose I know our guys you know aren't going to melt aren't going to aren't going to be phased by anything so that's comforting. That said you know we'd like to pull away a little bit every now and then so but but it is nice that in these close games you know our guys seem to play their best. Go next to you know Connor Aaron how great of an asset is it to have the ability to move Aaron judge over to center field to clear room for a stand and what does he say about a six foot seven 282 pound athlete that he could play center field without really any problem. Yeah first first he is a great athlete so we can do it. It's you know in a lot of ways it's going home for him where he's played most of his life. You know I think second it's the kind of teammate he is it's whatever you need and and and he loves going over there he loves doing it and obviously you know especially you know tonight we're facing a lefty you know to be able to get you know John Carlo and Luke's bat in there that's really valuable so it's been great and he's done a great job out there that's that's the other thing you know he's he's moved over there and played a really good center field for us. Go next to Max Goodman Aaron you've had Aaron judge and John Carlo stand for your entire time as the manager here they both respectively had really good stretches but is this the best you've seen with both of them producing and healthy at the same time. I mean I'm just gonna say I love where they're at right now you know we're obviously playing really meaningful games right now and you know those those two guys in a lot of ways are driving us right now and it's great to see them healthy it's great to see them playing well because I know just the who they are how hard they work at this and how much it matters to them and and to see them getting the kind of results in the middle together is nice.