At Pikeville Medical Center, we provide full service cancer treatment and follow-up care. And our loss in cancer center is one of only a few in Kentucky to hold accreditation from the Commission on Cancer with accommodations. Our purpose is saving lives. The Pike County Senior Center, which has been closed since 2019 due to structural issues, has awarded the bid to begin construction on a new center. At the last fiscal court meeting, the court awarded the bid for the Pikeville Senior Citizen Center to Elliot Contracting, a local construction company. We're planning on breaking ground on the project on December 1st. The project is funded in part with cold service tax money, but the primary funding source is a $1.5 million grant that Governor Andy Beshear and the Kentucky Department of Local Government helped us secure. The center will feature a commercial kitchen and a large gathering area. The center will give residents a new place to join, connect, and enjoy a warm meal. Well, a lot of people had questions about, well, other centers had shut down. Why are you building a new center? Well, when the senior citizens board, which is not part of the fiscal court, came to us, it was very apparent what would happen if the Pikeville Senior Citizen Center shut down. Most all the money for the senior citizens program is federal money and it's based on attendance. The most heavily attended center is the Pikeville Senior Citizen Center. So if that center doesn't reopen, then it would result in the Pike County Senior Citizen Center losing federal funds. Detentive ground breaking for the new senior center is set for December 1st. For more updates on the senior center, stay tuned to Mountain Top News. For Mountain Top News, I'm Brianna Robinson.


Welcome to Rotorite and we are going to go through our community spotlight this month. Would you like to explain what our community spotlight is? I would love to do that Cricket. Welcome first of all to a special community spotlight This is the first time it's been double-hosted by two people usually just one member of Rotorite But being the dream team being Cricket are we decided to host it together once a month the Rotorite team watches YouTube videos Watches them scours the internet for the best videos And if we like yours we pick yours and we show it on this show right here the Rotorite community spotlight I feel like we're doing something extra special. We're doing something extra We're giving away to one of the videos that we like during this this episode one set of fresh bot grinder motors That's right some grinders 2306 2450 grinding motors for free the first category We have for this community spotlight co-hosted by me and Cricket is location location location This is gonna be something where the location is the key to this video looks like up first We have flap around FPV so flap around is cruising the treetops through some mountain mist in this spot What is this Oregon?  Yeah. Yeah for real. I just started flying mid-range and that feels like so far to me Yeah, great music Awesome location. Look at this nice cuts nice cut on beach. Yeah flap around. This is nice man killer be man FPV with 407 subs. Oh, I recognize this spot the old famous Bando. I love the speed Yeah, it's attacking it nice, bro. It looks like one of you want you know the yaw authority witness the yaw, bro Witness the yaw. This is y'all. This is y'all amazing Y'all better check it out It's my boy and Philly local by DeVige. I rip with this dude every weekend and he's just getting better and better I'm really excited to see y'all to see this video here Yet to fly this spot this low orbit. This is great. I like to slow-flow me. It's something about that like I've been into that recently It was just ice ice slide. Oh, yeah, I slide Full 360 yaw the rise This is an old auto manufacturer plan. They made buses and cars and all kinds of crazy stuff It's five city blocks. I'm just Bando. It's so fun to fly finishing up our location location location section of this episode It's gonna be se fpv. This is nice. This what does it look like an old a bannon? Yeah, yeah, exactly. Wow nice backwards flying. No, he's going backwards. No, he's trick. That's a trick. That's just played backwards Awesome, though. That was that that made great atmosphere for this video. Yes. This is good. This is a really cool location Yeah, I like that I like that I don't even know if we're watching this backwards if it's not going backwards. Whatever it is. It's great I don't care if it's just played backwards. It looks amazing our next category is gonna be weird drones Weird drones the weird name tangy but frog fpv.  It looks done. Oh, look at the GoPro strapped on a tater.  I love the potato kids like this Oh, it's potato related Potato this song. Okay, can we go to the next one for the song get stuck in my head awesome flying Tangy but frog I think we have another one by him. Oh, oh, look at that. He's got a chromed out little mini This is made from all steel. Look at the full metal armerton gecko three This is a gecko made of metal. Wow. Tangy but frog. We should hang out some time Yeah, you're doing you're going over the top with everything buddy. Keep the most dangerous drone ever It's full metal.    He goes power loop. No Very nice very nice mad props. All right. Here's the bonus clip map props What you got here we go going for the power loop or oh the quad and then sparks and smoke and then The quad was like let off right away a little bit And she's let off trial that was it keep it up buddy our next category is snazzy tricks Oh, like vortex would say yes snazzy water nor what fpv nor what another Philadelphia local Yeah, he's killing it. This summer or this winter man. This is a Facebook video nor what's finally going through this footage Can't get over how dope it was. Oh, oh, oh Nar what buddy a maddie keep that up Maddie to Maddie look at those trees though. We're finding trees like that. Oh and a tree tap That's in Philly. Yeah, I'm very nice. Not what very nice Matt Young's let's see what Matt Young's has got and you've hit the gap just leaf So Matt is good at puns. We know that so far. Oh do it do it. Yeah, but oh What see that bar and then I get why you made the leaf pun Yep, nice very nice bro. That was killer. All right very nice mad young I until drones is our next video in snazzy tricks. Check it out. I don't know. Is that a Mastrager there? Okay, but you're gonna dive right down the middle of it nice next up is no caps fpv He's got no caps. Oh, I saw this. Yes, I do see doing your backwards. Keep it going keep it going Damn, bro. I keep it going keep it going.   Oh It looks so cool. Yeah, you were fast nice. Yeah, I miss travel. That was nice. That was amazing, man That was awesome. Our next category is gonna be micros. All right It's gonna be Ryan blaze flying the alien whoops zero some freestyle in the house. Oh through the kids room I see a battery like a javelin just pointing where you feel ripped It's really fun flying whoops inside when you have obstacles like this and you just get those lines You know what I mean? You just keep falling back and forth. Yeah. All right. That was awesome Our next one is going to be Kristen Jordan Oh, this is for the tiny whoop battle group. Oh, I like this one already. Yeah. Oh, dude. He's ripping this thing. Damn, bro Nice job on that buddy. Next up. We have SR 13 fpv. Looks like a nice locked in whoop. Oh, oh, I like this a lot Dang, bro. See flick. I like it. Oh, yeah, dude You got some momentum things going some metham pops. I can't fly my whoop like that like you guys with the whoops Yeah, this is awesome. It's a lot of practice man get set up in a lot of practice. That's that's hot And this is something I'm excited about. This is our 3d section.  Oh, he's drifting cuz he's filming drifting. I get it. Oh, where's he at 3d at a helicopter of solar farm Even if I know it's a 3d video once they start doing that. I'm like, what are you doing? You can't do that Oh, that's right. You do that. I give these guys a lot of respect for this cuz I've flown 3d one time It was rather difficult. It's a bear. Where's the site? Yeah, this is bear This is bear town. Oh Look at that. That's so cool. Oh shoot. That is that is neat a tiger Where is he? It's all like mosaic tiles to once he gets close. Look at that. It's crazy Yeah, nice flying bro third micro fpv keep it up. This is great killing it, buddy Zoe fpv 3d queen. She's been doing this for a long time guys. Am I not allowed to say shit? We're not allowed to say Zoe of course no mainly for a 3d flying. She's been doing it for a while and absolute beast at it the locations that This is a great location. This is awesome It's out of Zoe's 3d because it's just so fluid in and out of the 3d. You know what I mean? It's hardly any like jerkiness. You tell what's going on one way, then you're going the other way like in and out I think she hits one of these small gaps right here So Upside down and backwards. I like it awesome videos. Oh, we keep it up great job Our next category is going to be first This is pilots doing their first of something of some of the first category first try Chuck Murray Oh, we're gonna Maddie Maddie. I was your first Maddie Chuck. All right I went up to a billboard and then shot backwards into the billboard then I tried it my first Maddie flip that I Successfully did was definitely not this clean. Let it go. So that's awesome Our next person or a second person in the first category.  So this is Bubby FPV's first vlog if any of you have done vlogs You know how nerve-wracking your first vlog is and how hard that is to do just put yourself out there like that Oh, that was cool though. He wrote up on it like that. I do remember this guy. Nice. Happy music. I like that Guess you in the mood nice. Well, this is our future guys. So make sure you check out Bubba FPV Look how smoothie is already two man. He's like 10 killing it It's crazy. Oh, bubby. This is great. Oh me. Is it bubby? What I call him bubba Bubby you got a nickname from cricket now, bubby check that out bubba awesome Bubby very nice very awesome first vlog. I like them. I like the bike ride with the Lego man on top chasing chasing That's very hard to do chasing that a couple times. We tried speedy FPV. That's my buddy there Oh, it's like a downhill mountain bike in an urban environment. Oh, what's steps? Oh, this is awesome You're sweet flying his quad right there Dang bro. That's awesome. Dang. What a cool track just in the middle of the city, too You can tell you rise this track a lot too. Just like it's like dug out. Whoa. See how close you look at that Oh, it's awesome. This is the Cinewhoop category He actually showed me a Cinewhoop today and I want to build a Cinewhoop. A Cinewhoop is a quad that is ducked So that you can get close to something She's about a three inch four inch box up like that with ducks like a tiny whoop would have You know point of a Cinewhoop is just cruise around getting that juicy and once you look at these videos You will see exactly what we're talking about like let's see what Tom's FPV has. I know Tom's got something crazy Oh, this video. This is awesome. This is a two inch. This is Amazing. I remember seeing this the other day Tom's been doing a lot with that that that after effects effects is so cool. I bet it'd be hard to get that's cool right there like that How did he do that? How was that even done? I'm confused. Oh Then all these shots are just so good. How was that done though? Tell me explain that with the Cinewhoop. I guess you'll have to find out with your Cinewhoop That's bad. This is a great video though I would I'd love to see I love seeing FPV combined with other things and this is like, you know Awesome little dance video hip-hop dance video combined with Cinewhoop and awesome effects I feel like you can add another angle to almost any video you want to do if he's drones in a correct way Another reason why drones are gonna be a big part and it's a red ball right now Looks like next up we have inspire FPV with some Cinewhoop parkour action hardcore parkour I don't know which more impressive the the flying or the park or it's a good looking with Cinewhoop right there. Damn That was hardcore. Yeah easy. Whoa. That was a long jump What a great use of a Cinewhoop though. You see I guess those like yawing angles. I like that a lot Yeah, it's really you can't do that You can have a guy running around with a GoPro filming you can only do something like this with a drone And you gotta yaw it out those little gaps and everything. Yeah, he's authorized for sure Oh, yeah, go follow inspire FPV for more awesome Cinewhoop action. Our next person is going to be Justin Naman. Oh My two favorite things quads and cars Dang bro already starting off hot.  This is awesome. Nice job Justin this category here I'm really excited. What's this one? This is Chad's pick Chad's picks like capper capper. Oh, so capper watched all these Capper picks. Oh twisted FPV six s tree silent tree silent love the puns love the puns get it This park is sick. Yeah, I like this nicely manicure trees evenly spaced out good music to a lot of good music tonight This looks like a cool little spot. You definitely get some flow on as you see here Twisted FPV definitely getting this flow on alright little stellar Fox for the day at the park This is a great video. She's being so good lately. She's being really really smooth. I'm enjoying watching her work She's killing it down there with those Elena guys man. She's like everybody goes to Elena just blows up down there I mean she's been putting in the work for a while. So it's awesome to see it finally paying off All right, let's go I'm stellar day at the park. Keep them coming on me keep those coming less but certainly not least certainly Tim Rodriguez Yes, you guys do like that do it again.  Oh, this is so good.  Do you stand like that? Like tippy toad out to like what there's something a little different Well, he's getting a little sketched out You can tell he's staying there for a long time that one knee starting to fold in the little bit Why are you standing like that? And that brings a conclusion to our well this month's community spotlight and don't forget We're gonna be giving away a price tonight. You want to tell I'll be the I get to be the guy you tell him Hey, you tell him. Hey, bubby FPV. We loved your video your boy bubba bubba. We loved your first vlog We thought it was awesome We know how hard it is to get out there and finally film yourself and make a vlog and put yourself out there on YouTube We thought it was awesome. You're the winner. I'm sorry Way to go buddy To give away the set of grinder motors Congratulations, keep those vlogs coming man. We loved it and thank you guys for checking out this month's episodes of Rotorite community spotlight featuring you like Bob grinder and your boy Craig it if you have somebody that you think is absolutely Killing it. There's a link below recommend your buddies get your buddies up on here make their day surprise Don't tell them recommend your buddy and don't tell me put them on there Think of how cool that would be and you'll be a friend forever high five because we're awesome at walking Clapping on your finger put it on your finger. I was gonna do just put it on your finger. Okay, do it not the back of the finger


In true Google fashion, things change. I'm going to show you how the new share feature within Google Sheets, Google Docs, and Google Slides works. It's basically the same thing with a little bit of a tweak. I have a Google Sheet, and I'm going to share it. Go over to the top right. You have your blue share button as always. Once you click on that, your screen looks slightly different than what it did before. You just type their email address in just like always. You hit send, they get it. You have now invited specific people into that document. They have the rights, whether it's can edit, can comment, can view. Everything's just like it always has been. No big deal there. The difference is, what if you want to make that sheet or that document or that slide something that is viewable by a web link? This is a little bit different. If you really, really like the old way of doing it, fear not, it's still there. All you have to do is go down to this bottom right corner where it says Advanced. As soon as I click on Advanced, there you go. The screen looks identical to what it always has been. Click on your change. Anyone with the link can edit. However it is that you normally would do things. So this is no different. So if that's the way you like it, perfect. If you want to try the new way, by default, I can easily share it with people within my district and give them rights. All I need to do now is after I click that share button, go right up here where it says Get Shareable Link. When I click on that, by default, my Google Apps for Education domain comes up. I click on this little dropdown and within my domain, I can share, can edit, can comment, or can view. Now maybe you like this setting still and you still kind of want to tweak it to let a parent in. Click the More button at the bottom, right back to how things always were. Click on your Anyone with the link. Can view. Maybe you can change it to can edit. Click Save. Life is like it always has been. Like I said before, if you're old school and you love how it was before, this Advanced button is your friend. Hope that helps. Good luck.


Hi everyone, I will not give a lot of time because I decided to be free hungry and I apologize for my voice because I just got Delhi Pollution to Bombay. Alright, so just a small introduction as to what I do here at AnyTag. We are an influencer marketing company. We rely on data, rely on a lot of other things to basically create strategies for our various brands. We started AnyTag about two years ago with a very different approach. I mean all of us have been doing influencer marketing, I have been doing influencer marketing for a while and we have seen a paradigm shift as to what influencer marketing was, to what it is right now, technical issues. So like I was talking that influencer marketing earlier was about Twitter, about key opinion leaders and now it's aesthetically moved to content marketing which we really rely on. We feel that influencer marketing is not just about talking in silos but it's a much bigger thing which is content marketing of course. What we do here at AnyTag is not just taking simple basic influencers and creating silos. We try creating brand advocates for brands. We try covering a lot of data, getting a lot of research as to why a certain influencer is creating a better resonance with the brand. Obviously there's a lot of past data that's involved when a certain influencer works with a certain brand. Like I said, it's just not about influencer marketing, it's just not about getting that one person, it's about creating content. So we don't really work with influencers anymore, we work with content creators and that's exactly what we try to do here at AnyTag. Like I said, at AnyTag is what we're trying to do, we're not coming to you and telling you that, you know what, let's just create so many pieces of content, let's just do these many pieces of influencers. We try and understand what the brand is exactly about, what is that we can offer on the table for your brand, what is that we can do better for the brand. Content marketing has really, really changed and it's not the same what it used to be even a year ago. COVID has made us realize a lot of things. In fact, like everybody else was talking about organic content, we go with an approach to the brand of creating organic content and hence we're able to work with a lot of brands which are global. For a simple reason that we feel that influencer marketing is not just about talking in silos, it's about actually creating content that makes a lot of sense for the brand and how we can create better brand advocates for the brand. Working with influencers just once or twice doesn't really give you those results. We try and collate all the data, data is very, very helpful, it's one of the best things that you can get. It's all available, it's all about how you churn your data. We churn that data with multiple campaigns, with multiple reports and we try and creating an advocacy program for the brand and that's exactly what we do different at any tag. Just one of the campaigns that we did for NORD and it's a food brand, right? But we did not work with food influencers. The idea is how do you connect to the audience? We're not creating content for the brand here, we're creating content for the consumers. So we need to understand that what is the consumer base about? How are the consumers reacting to a certain video? Which influencers are they creating better resonance with? The space is not just very limited now. If you're a food brand doesn't necessarily mean that you have to work with a food influencer or a food content creator. It's about working with content creators who actually make better content, who subtly integrate your brand and subtly talk about your brand and that's exactly what the audience is about. We have millennials and Gen Zs all around watching this content, consuming this content. So we cannot be really straight line when we're talking about our brands because consumers these days are not very straight line. So yeah, just some of the few things that we've done and we're actually very proud of the kind of work that we're doing across with a lot of brands. It's about creating that differentiation factor for your brands. Using data, using a lot of other things. We have a reporting tool. I'm not going to really give a sales pitch here because honestly, I think everybody does that. You have enough that while your work hours, but like I said, data really helps us also at the same time. What we have, how we crunch data, how we create advocacy. We don't really comment that okay, what we're going to give you sales because influencer marketing cannot really do that at the same time. It takes a lot of time for that to happen. There's a lot of gestation period, but the data that we give you in terms of resonance makes a lot of difference. It helps us choosing better influencers. It helps us give you the kind of content that you want with these content creators at the same time, you know, getting that right mix of content creators in order to hit that right spot for your audiences. Some of our achievements, which of course we're proud of. So in the past two years that we've been pretty much existing, I'm pretty sure there are a lot of agencies out there who are doing a lot of good work. We as a team, you know, we don't really work as... We work as your brand consultants because we love content. We're all content junkies at the same time. That's what I like to call our team. We try to create something that's lucrative, something that, you know, gives you those eyeballs, something that's different at the same time, something that's not normal straight line work that we're trying to do. And even if that takes a lot of convincing, a lot of data, we do give that things to you. So that's exactly what we do at any tag, I think. Thank you so much.


Hello there. Unfortunately, Matt cannot make it today. He is recovering from COVID, but we have Alyssa, singer-maintainer of Envoy, Jan, Greg, and Joshua here to answer any questions you might have. Generally, this ends up mostly Q&A, but if you don't ask questions, we'll have to figure out something to blather about, so please come on up to the mic and ask questions as you have them. Hello, Kevin from Akamai, burgeoning Envoy community at Akamai. A couple questions from our engineering folks that they wanted me to bring forward today, so I apologize if some of these are public domain and we didn't do our due diligence to find the answers to those. So, one of them has to do with the external processor filter, so we're pretty jazzed about that. We're experimenting with it. The question was around whether or not it's considered production ready. Do you want to check that out? Yes, or almost there. I think if it's not there, it will be there within days or weeks because we have a GA that's a product that uses that, that has that as a requirement, so it will be production ready very, very soon. If it's not already, I don't know the exact status. Is there a particular version we should be looking out for? We did a number of hardening measures for specifically to harden it against untrusted exproc servers, and that all went into the most recent release, which is 128, I think. Yeah, that's right. So, yes, that should be the most recent, the most recent version has the most robust and hardened version of exproc. Okay, perfect. The other question they had was around connection handoff after handshake. Is there any work that's been done either for TCP or UDP to be able to handoff a connection? I wouldn't think that would be a non-boy thing, it would be more of a downstream psyllium thing, but just that was a question they had. Well, for TCP, you'd need kernel involvement somehow, and that has not been investigated at all to my knowledge. Okay. In theory, you could do it with quick, but I don't know that anyone has looked into such a thing. I believe Raven's actually looking into that for support HV3 hot restart, but I am not holding my breath. It's a really hard problem. Okay. So, yeah, I would say that that's not currently a supported feature. For a hot restart, though, we're just looking at routing to the correct envoy during the hot restart, not actually moving the connection. Yeah, we're not turning the handoff connection, we drain new connections to the envoy and then eventually close connections to the old envoy. It's something we wouldn't be averse to. I know that's something that Akamai tends to do, so if you guys want to add support, we would review it. Okay. But I don't think anyone else has looked into that yet. Okay, cool. The other question was kind of around scaling for configuration, multi-tenancy certificates, clusters, routing information, just kind of general metrics there or gotchas that we should be aware of. Thanks, I could not find that. Yeah, scaling is a lot of, is a big concern for a number of the products that we run at Google. Let's see, you mentioned scaling for the version. Certificates, but I think you guys handle those outside of Envoy, if I remember from last time I talked to you. Certificates, yes. Certificates, yes. We offload them. In fact, the way in which we did that is in the open source C++ class hierarchy and it is possible to inject out of band handling and that's how we do that. Okay. We're using the straight upstream Envoy, but we have linked in with a replacement main, the ability to inject in certificate handling, so we handle that in code that we have no consort. It is possible to follow the pattern that we have done and replicate that yourself to offload certificates also. So that's different than the, there's a hook in there that allows you to just use the private key signing operation. So this is a different hook that's lower into the stack that does that so you don't even need the certificate itself. Exactly. TLS offload. TLS offload? Yeah. Okay. Yeah, I mean the request is handled in process, but the negotiation on connection is offloaded. Okay. You also mentioned just large numbers of clusters. Code got merged in, I would say maybe a quarter or two ago to make the whole cluster initialization lazy in it. I don't remember the exact scope of it, but it had a huge impact in memory usage on our multi cluster systems. When we were loading a lot of clusters that never actually got used. Okay. And that's at two levels. There's just the stats in clusters, and then the whole cluster information itself can be lazy loaded. And that had a huge memory footprint. We're always looking at memory footprint for a large scale multi tenant systems. Okay. Is that going to be extended into other areas like routes or endpoints as well or not sure? Could be. I don't, I haven't looked at the detailed plans. I wasn't involved in that myself. Traditionally as we hit scaling pain points, we scale them. If you hit different scaling pain points, you can scale them. Sure. The clusters had been, had been a distinct pain point. So that's one that we addressed recently. And we can point to the PRs where that got done also, if that is helpful. Okay. I think just knowing that it's there is probably the key. And then if that's a pattern that would be reusable, then we can certainly look at it if we need to for other areas. Okay. And I think the, the last one I had here was around the cash filter plugin. Understand that's not something that should be used for production or anything. But they were wondering if you had any example code or anything around remote HTTP calls for that. So I think the idea is that the cash is remote or we use an existing cash we might happen to have. You know, is there any examples of that that's out there that you can point us to? Yeah, the cash filter is probably seeing the most like it was built years ago. And, but it's kind of getting some attention now from one of the maintainers Raven, who has built a file cache based on that interface. Oh. And so that is in the code base now and could be maybe used to extend it to, I mean, it was obviously intended for a remote cache. The whole system was, was designed to, to be asynchronous in that way. But nobody has flushed one out yet or had the priority to do so. But, but Raven has built a file cache on it, which is at least a good start. Okay. Yeah, I'll say unfortunately we ended up branching the cash filter. The team that does the most caching and Google wanted to move a little bit more faster than they could get reviews. They are interested in open sourcing it. There's kind of an ongoing negotiation with headcounted so I can't promise it'll happen this year. There's a separate project, which I'm hoping will end up an open source involving that basically uses some of the upstream APIs. We have to do a better job of handling connection persistence around live streaming, which may or may not be interesting. But again, as with all things on the on the road map, it's kind of unclear what will end in open source any given year. But it's definitely an area we would love to see more investment in. So if there are features that you want there, we would absolutely love to have kind of a more functional cash filter there. Okay. All right, that sounds. Yeah, just trying to understand trying to avoid working on something that might already be almost ready to come out or something like that. So, okay, good. I think those were the questions that that I had. So I appreciate it and we'll probably follow up a little bit more offline as well. Sounds great. All right, thanks. Thanks. And for folks who came in late again, this is just open Q&A. So if we don't have questions, we can bother. But if you have questions, please come up to the mic. Hi, this is Sadeesh with Tesla. So yesterday, there was a point mentioned on the parsing engine, the HTTP parsing engine that's used in Envoy, right? Like the HTTP parser and the Bolster parser. So from a security roadmap perspective, if we let's say a year from now is the expectation that the frequency of CVs that show up with respect to security folks mucking around with headers basically impact data plane, is the expectation that Bolster parser kind of will help reduce the frequency of these data plane related CVs? Absolutely. So one of the things that our Envoy platform team has done over time is every year we look at the CVs we have, and we try to tackle areas which have had kind of low hanging fruit for security improvements. So both switching over the codex, again, we've had multiple zero days due to our HB2 parser. We've had at least one CVE due to HB parser, I think, two or three. But the really big one, as far as I'm concerned, is the unified header validation. There's a bunch of gotchas that we continue to find in Envoy code related to header validation, character checking and whatnot. And I think once we kind of finalize this transition, I would sincerely hope we have fewer CVEs. Now that's not going to be zero again. We had this emergency releasing Q4, the frame shift, rapid reset attacks. I've been in edge proxying for 16 years now. That was the most effective attack against major companies that I have seen in my career. That sort of thing is not going to, I mean, that's a one in 16 years sort of attack. But that sort of thing is still probably going to happen where we find something the industry's never considered before. But the really low hanging, this was written by a startup overnight by Matt Klein, type bugs where we think Colony is authority that should go away and go away permanently. Gotcha. So the future Envoy releases next year will incorporate the Bolsa parser. Yep. Yeah, Balsa is on by default. We're hoping to turn OGHV2 up by default this quarter and then UHV hopefully early next year. Gotcha. My second question is a question that I asked Matt last year is how big can an Envoy configuration get before it breaks? And his response was there's no free lunch. Find it out and let me know. Yeah. And I would say that's that's still kind of the case. I mean, I believe we have cases on the order of hundreds of thousands of of configs and it works. But again, we'll hit something where we have memory pressure did clusters and we have to go fix that.  So for us, and again, I think Google tends to be at the forefront of scaling, though maybe Akamai will be seen. You know, when we hit something that simply doesn't scale well, we refactor Envoy until it does. So it's basically a function of resource that you allocate to your XDS instance and the resource that is allocated for the data plane proxy. And as long as the admin thread does not die for whatever reason. So it should be. Yeah. Okay. And again, it's possible that you'll hit an area like, you know, one thing we found at Google is is if you're doing a lot of like regex matching that can get really expensive to like walk through ordered rules. So it is entirely possible that you can configure Envoy is that hit a scaling point that we haven't hit. Right. And then it's a question of do you change how you surface those configs or do you try to optimize those code paths. And again, that's a decision you'll have to make when you hit those those scaling points. Yeah. So one of our Envoy shards is around 150,000 lines and counting hasn't broken in over a year yet. So yeah. And XDS stream times three minutes, four minutes, which is really impressive. Like because what we're essentially doing is you have a bunch of swagger's you parse the swagger's out, build the routes, populate it and set up authentication or whatever. And it works and it's scary that it's works because I don't know when it's going to break. So, okay. I mean, one suggestion I would have as a longtime proxy expert is make sure you can air your configs, you know, do not roll out a config of death wide scale. That is something that sadly still happens even at major companies. Actually, I have a question about that. Are you using you're using an XDS with a control plane server and and state of the world every every so many seconds and it's that big and it works. The good part is that I know the point Matt made last year is with if you keep pushing a lot of updates to XDS that is not recommended. I don't recall the exact reason why but unfortunately, but fortunately, we are not there like we don't need to have frequent updates. So so far it lines up. We just have to tell a developer him and just wait for like five minutes and you'll get your configuration reloaded be happy with it. I guess it is stable. Yeah, that's good. I am very interested in what happens with all of the like on for stats and admin thread while XDS is loading and it might like be that that backs up and that might not be good. So that could be a possible pain point in the future to look for which was it again. Well the XDS parsing and stats and all the admin handling is all on the main thread. We don't have a large blocking, you know, compute bound operation on the main thread or sex. Yes, that could, you know, that could hold up those other things from occurring and might back them up and that might have a fact that we have. I think there's also health checks and outlier detection. There's some other stuff ring on the main thread. So that is in fact one scaling point that we have not hit internally with our on by deployments that we have hit and other deployments where we've had to break operations like the conflict reload and stats and health checks into their own thread pool. They're blocking each other. So as you do these, these very large monolithic updates that may be something that a pain point that you hit that that you need that feature before we do the admin thread is what we are watching with the eagle eyes because again, like I don't know when it's going to break. But yeah, I think the whole concept of configuration sharding is very difficult to it depends on the business right like it depends on how your business decides to use the proxy. I think we'll have to find out the answer. So another question I have is on egress proxy. I know that the egress proxy is still not GA and it's in beta or I don't know whether it's in 1.28. When you say egress proxy, do you mean like dynamic forward proxy or do you mean? Yeah, the dynamic forward proxy. So we have several interesting security use cases for that. It's it basically basically surrounds ZTA. And what we're interested is if a client makes if you somehow force a client to tunnel their traffic through egress proxy using DNS, it's very simple. But if DNS is not in play and if an attacker is using IP address to connect, then you need to have some form of an ebpf mechanism to basically switch, basically muck around the destination IP in their packet and force them to the egress proxy. So are there any thoughts and ideas on some solution because ebpf is really easy to run on Kubernetes and all. But if you're looking at bare metal or like stateful application that are hosted on VMs or even windows applications, how do we design a holistic solution where we don't want to use IP tables for sure. But we definitely want to use ebpf force the request on any client to go to egress proxy. Is there any works in the future or Not that I think any of us are familiar with. Sorry. Okay. I have one more question, but it's got to do with the rate limiting, but also it's got to do with rate limiting and regex. I know that in one of the releases this year, the regex engine was changed or there's a hyperscaling regex engine or something along those lines. I don't recall. So if we were Yeah, that's an Intel contribution, I believe to take advantage of hardware available on x86. And it is, I thought it was on the order of like a 20 to 30% speed improvement over are you too, but I might not be remembering right. Okay, so But it's a different syntax. So you have to So we'll have to have compatible hardware to effectively leverage that 20 to get that 20% bump. Right, but I think it's not just it was Intel that contributed but they claim that this would also be working on on AMD also. Okay, but maybe not arm. Got it. Okay, one more question. Sorry. It's just coming to me now. Yesterday one in one of the talks they mentioned about Okay, I when I saw the source code, you have the admin thread and the worker threads. There is a trace trace object call that goes to the admin thread that essentially reports the latency for every request. I don't know exactly which C++ method that is. But they said in the talk they said that one way to choke your admin thread is in the event there's a thundering herd requests and your worker threads are doing a lot of work and they're reporting back to the main thread, the request ID, the request start time and the request end time.  Again, I'm not able to remember that exact method. It's trace something method. How do we get visibility for or basically just set up a small counter that keeps track of these things because if you really want to be protective of your admin thread, you want to know all the methods that are used to make calls back to the admin thread. I don't know if I have an exact answer to your question, but I believe we have stats and histograms on ePoll behavior for every thread. So you should be able to look at the ePoll stats. But they're also by default, I think. If you're sensitive to latency, you can turn them on. They may be, but we turn them on. Yeah, no, I turn them on also. But they are off by default given that they're pretty. I think the issue is that some of them are histograms and histograms are very bad for stats D. Got it. And so if you don't use stats D, it's probably fine to turn them on. And if you do use stats D, then it's expensive. Fair enough. So that tends to be a really good indicator of if any of your threads are getting bogged down, you can basically always have those younger monitoring pages. And if, again, you've got these, you know, so config reloads or you're doing sense of reacts or tracing, you should be able to see that going up and keep an eye on it. And if it gets too high, I get to investigate, see what's causing the problem and then break it out into worker pools. The other thing I wanted to note about regexes is that even the fastest regexes are not as fast as trimatchers or prefix matchers. And so to the extent that you can express your rate limiting rules in terms of those, it's probably going to benefit you 100%. And especially when you're doing a lot of rewrites of parts or even query programs. I think the rejects that have come out this year is we, I think we did easily see a 5% improvement without anything like the same VM new online version. It's faster. And yeah, so yeah, I think those are my questions. Thanks. Yeah, there's also a path matcher like a special which was introduced recently you can investigate as a replacement for rejects. Violeta, I'm new to the space, but I'm a very nosy person. So I was wondering, do you have any advice for me to learn how the community thinks what the vision is basically where do the discussions happen? I think unfortunately a lot of discussions that I'm aware of happen on the online maintainer channel, which is not particularly useful to someone who's not an online maintainer. I think in general, the more you get involved with the project, the more you'll get a fear for what's going on. You'll get review advice and sometimes other people get pulled in. As you get more involved, you may end up an extension owner at which point you'll get people that are in code reviews and you'll kind of see different maintainers review styles or have people ping you and ask questions. So I think just getting involved, finding an area that you're interested in working on. And again, as mentioned, I'd love to sync up with you after the con and figure out some opportunities for that. But the more involved you get, the more people you get to know and then the more you ping them offline or get hooked into channels when we're brainstorming how to do file-based caching or something, it just kind of evolves organically. I don't think we used to early on in the project, we had very regular meetings, but we haven't had them lately because people haven't been putting anything on the agenda. So that used to be a way to at least kind of be in the water cooler conversations and those just haven't happened lately. I was thinking of trying to revive them, at least having like once a quarter just for new people to get names and faces. Melissa, how well known is that? I think the only reason I know about it is that you told me. But there must be some way to discover it. To discover what's the fact? The bi-weekly meeting that we don't have anything on the agenda for. I have it to do to update the docs on that, so I will get that done in the next month. Sounds good. I'll also say that on Slack there's also the Dev and Users channels, Envoy Dev and Envoy Users, which I look at, I don't have time to answer everything, but you can probably engage people there also and you don't need to be a maintainer to be on this. Yeah, sounds good. I've definitely seen some conversations there, but it seems like they're very short and they die very quickly. Sounds good. Would you recommend going to the community meeting without the meeting you were referencing? That was what I was just saying is that it's not regularly held anymore.  So I will do a better job of updating the docs to make that clear. But other than that, yeah, I think we mostly just hang out on Slack. And again, people are welcome to file issues to try to start discussions. It generally doesn't work. We generally throw a pro request out there and start in on something or just ping someone and talk to me because again, like we really do love having people doing contributions and we will, you know, and people, the more you help out with the project, the more people will like help them, you know, help answer your questions and prioritize your views and everything else. Sounds good. I have a second question. One of my teammates, sorry, I don't have details. One of my teammates would like to be a maintainer. And I believe he has been trying this year. Do you have any advice that I can relate to him about anything he can do to be more strategic? I think the thing that we recommend is that people email the maintainers list early and often we often have areas of the code that are not well owned and not well maintained. And if people are willing to pick those up, it also means that all of the maintainers will pay more attention to that person's code and reviews. So often we'll have people who try to get involved with the community by doing work that other companies don't particularly want. And then there's a whole bunch of back and forth and people aren't looking at their code very carefully. And then they say, oh, it would be a maintainer. And then no one is willing to go back and, you know, comb over their code reviews. So I do encourage people to reach out early and often, even if it's obvious they're not going to be a maintainer in the next week or two. But to say like, hey, I'm interested, how do I get more involved? And then we're happy to help out there. You guys have any other suggestions on that? Yeah, I mean, I think that I don't know if this works particularly well, but we do have this mechanism. It's called first pass reviewers so that when a PR comes in, there's a maintainer on call which will assign it to one of the maintainers to do a review on. But if there's first pass maintainers that are active, then we can assign it to randomly pick a first pass maintainer, a first pass reviewer. And that will get you known about how deeply you look at code and how well you understand the system. I don't know if I would start with that, but you could start by trying to write some PRs, getting some feedback and then get involved and learn the code that way. Thank you. Hello, I'm Sabrina from Spotify. I wanted to ask you what is the status of the rate limit quota system feature? Is this something that is close to release or? No. It's been close to release for many months. And I don't have the ETA for when it's going to be delivered. It is going through the like a staging qualification right now. So I don't exactly know the GA, like general availability on it or even alpha. But I know that right now it's in the integration stage. It's live enough to start doing developer testing. But unfortunately, I don't have much more information than that. My guess is that it should happen sometime early next year. But again, that's a guess. Thank you for your answer. Is this something that someone could potentially contribute moving forward to move forward? I think the biggest gap in the open source is really the server implementation. And that's been asked a couple of times. And I think the for rate limit quota server, the implementation is more complicated than for the for the existing global rate limiter. So that's, I think, where the biggest gap is and where probably most of the effort would need to go to to make it available to the open source community. Because right now we have the client for it. We have the extension and envoy. But there is nothing to hook it up. That's open source. Yeah, that's where I see where the next effort is going to go. How that's going to unfold, I unfortunately don't know. Okay, got it. Thank you. I have a question for us. That kind of reminded me of like generally, if somebody wants to contribute more to envoy already has a lot in the past and is looking for a new area seems like maybe we have a good view that others don't on what needs help. And we should have some place where we list. Shovel ready project. I mean, actually, we have that internally for the hour, like at cool for the platform team. But we should have one that is open source. Yeah, so externally we have we have an areas like the issue tag for beginners and help wanted areas that we are more interested in. I think we don't really have a great way of publicizing like again when we have a maintainer that steps down. We have our kind of internal process for, okay, we need to find people to own this extension, but we don't really have an external way to be like, we really need someone to own tracing or to own stats or to own whatever. So yeah, that is an area we could, we could look into. Yeah, we have that tagging system. It's good, but I bet it's not curated and it might be kind of noisy to just look through and maybe that would be a good thing for us to do while we're on call or something. We've been working on Sillium lately and like with Sillium network policies, any layer-through-layer-four policies get handled by a T-proxy implementation Sillium that is implemented in EBPF. Any of the layer-seven policies are punted to Envoy. I was just wondering, has the Envoy community or the maintainers considered at all using EBPF for any of Envoy's functionality? Obviously, EBPF, there's just, there's a lot of interest just because of how performant it is. I know Envoy is kind of an extensible system. I was just curious if there were any considerations to taking some of those capabilities of Envoy and kind of integrating them at the EBPF level. I could be misremembering, but I thought we used EBPF in our H3 implementation. Yeah, we do. So I think, I think in general, we are open to it. As with all things in Envoy, we end up picking up technology as is needed. So again, you know, Google's a heavy user of H3, we found that not using EBPF is a performance non-sterter, so we added that directly into Envoy. We haven't hit areas in our production network where EBPF is a huge performance win, but maybe as Akamai gets more involved, they're going to have an area. If there are areas where it would speed up the data claim for you and your environments, I think we'd welcome contributions there. Like anything that makes Envoy more performant, we are enthusiastic about, it's just a question of someone caring enough to contribute it upstream. Is it those for H3 support? H3 support, yeah. We use it for routing packets to the correct worker thread based on the connection ID. But there's, the other thing to consider is Envoy is cross-platform, and so there always has to be a fallback that isn't EBPF for everything important. For the HTTP3 support, now was that just a decision that the maintainers made just from your knowledge, or was there some kind of performance baseline that you did and saw that, wow, with EBPF approach? H3 was more performant than... Bit of both.  So we know what the performance gains were, and for our own use of Envoy, we were not willing to have the packet passing be the default out of the EBPF. So again, if there's areas where you and your own deployment want to play around and try to write rules and find it to be performant, we would be enthusiastic about improvements to Envoy's performance. With H3, because H3 is actually one of the very few areas where we don't have cross-company review, because there wasn't anyone else who wanted to do the code reviews, and Google had been the lead deployment. I don't think we published numbers, because it had been so many years since we did anything other than EBPF, we couldn't say, like, oh, this is an expert sentiment improvement. But we would encourage people when they add new code that hadn't been production battle tested to say, like, yes, this has this improvement. It's worth the review time and the lack of readability. Can I assume just being able to search up an issue or something like that could find that PR issue for adding that, just to see kind of the details of how that was done? Yeah. All right, thank you. That one may have been glummed in with some other larger PR. Might have been. You have two minutes left, so I'd say we could take one more question if anyone has one. Oh, you quick. Hey guys, Mark from HashCorp. So I do have a lot of, like, customers that go through Envoy logs, a lot of rich data in there, and sifting through the logs can, depending on what the component level is, can take some time. So I just wanted to know, like, from the maintainers, like, how do you usually sift through logs? Is it, like, from what perspective do you guys look at to, like, try to troubleshoot from that end? Or do you look in the code base? Do you go, like, from trace to bugs to info? I almost always try to use metrics instead of logs as long as I possibly can. Okay. But then, yeah, sometimes you have to look at logs. And one more quick question. You know, sometimes the logs are helpful. Sometimes you have, like, hey, like, you have the specific error, but then sometimes it can be blink. Like, if it's, like, a certificate or some error, say, something denied or something, and then it doesn't always have a specific reason. Is that an opportunity for, like, someone wanting to contribute to, like... Absolutely. There's a ton of work in trying to surface areas so that you can, in access logs, know the exact reason any single stream failed. We did it for every single L7 reason.  So absolutely, please, please, please, please. Better error reporting is the best. Cool. Thank you. Appreciate it. Cool. And I think that's it. Again, I know I can hang around outside if people just want to say hi or have other follow-up questions. Otherwise, see you, hopefully, next year's Unplugged on.


And I also find beauty, the industry and the community very engaging and inclusive in terms of like, we're all in this together, and it just, that's sort of how it started. I wouldn't have guessed that. What are some things that you're learning at Sephora where you're thinking like, okay, can this transition into running a company? Well, I never ever in my life thought I would have a company, honestly. Like it wasn't, I sort of had a plan in terms of things I wanted to do or places I wanted to work. And I think that, you know, I think about the things that got me to being an entrepreneur, to owning a company. And I think I just kind of always had that mindset.


Hi, it's Bridget. This is a follow-up video to the Prince Transformative Channel that I just did and I wanted to do a follow-up video because I want you to understand how crazy things are When I try to do recording This is like the behind-the-scenes stuff. Okay, so we're sitting in my living room right now and We've got I have four children and four dogs four children and four dogs and so one of my kids is just over here working on the computer one of my kids I'm just came up from downstairs. I'm one of my kids Okay, one of my teenagers who like sleeps to like noon on the weekend. This is Sunday came up at like 9 a.m I mean hello, you know crazy. So then the dogs bark she comes upstairs and this is whole thing so This is the kind of stuff that I try to work with so that I can make sure that I can record new channeling New channeling videos every week for you. It is definitely a process And so even though this video the Prince Transformative Channel with the PRD Which is purple raindrops. This was a nod to the purple raindrops to people who love Prince whether it was in human form his legacy his music his artistry or in the afterlife love Prince the spirit Who is an advocate for our own individual healing and who who so spouts the energy of love and the essence of of Love within ourselves and that is our connection our true connection. So those are his messages and I wanted to make sure that I could share that with you especially right now because I'm recording these videos During thanks week. So it's Thanksgiving in the United States this week And I really wanted to make sure that I could share with the purple raindrops the PRDs The energy of Prince in a trans channel because they love the transformative channels I have tons of people who are Prince fans that follow my work and have followed my work for the last few years And so I gotta give them love you gotta give them love man You got to give gratitude and appreciation back for all the love and the support that they've given to me as well So I really do appreciate it. That's why I'm wearing my purple PRD hat This is a new hat and I'll be talking about it this week at the purple medium on Facebook so if you're interested in finding out more about it, you can do so there This is Bridget. Thanks for listening to this follow-up video if you're curious about how crazy it is for me to Try to do this kind of work and how it actually works. This is a Sunday It's a great idea for me to do my recording When my hubby's around because my husband actually helps set up the camera and does all this stuff and and when the trans I do Transformative channels I give him questions ahead of time that I want him to ask the spirit because if I don't do that Then what can happen is I behind the scenes try to ask. Hey Louie. Here's my dog. He's one of my dog He's hi, baby. This is Louie Well, he's a weiner dog here. See We say hi to the people say hi to the people I Can't really This is one of our little dogs. We have like four dogs. We have three little ones and one huge one a big red lab We've rescued most of our dogs. And so that's why we have four dogs, but That's it. We also live in the country, too We have about five acres in the country and I live in Minnesota. I actually live in southern That's southern Minnesota I live about halfway between Minneapolis and Rochester if you've heard of the Mayo Clinic in Rochester the big fancy hospital research hospital there I'm about halfway between Minneapolis and Rochester. So It's we live in a neighborhood of five acre lots But it's kind of considered the country because it's outside of like the suburbs the first-ring suburbs of the Twin Cities So but it only takes me like 40 minutes to get to the airport to get to Paisley Park It takes about 50 minutes 45 50 minutes or so probably about 50 minutes I would say to get to Paisley Park in Chanhassen, Minnesota and actually when I was When I graduated from college one of my first jobs was out in a little suburb near Chanhassen and I my very first house I ever had was a townhouse a brand new townhouse in St. Bonifaceous, Minnesota and so I I Actually used to drive right by Paisley Park often to get to my job This was not interesting a little bit of trivia for you. There you go So this is Bridget at above life channel. Thank you so much for watching this video This little behind-the-scenes update about what the heck was going on all the craziness During the trans channel with Prince, but he's used to it like he knows and he's super respectful of my family space Family is really important to me and I balance it very well with my life purpose, which is this Channeling and connection with the afterlife. Thank you so much for watching. I hope the videos have inspired your spirit and filled you up with hope today


I just saw this post regarding Godot on Facebook. Someone's having an issue where they're creating buttons in a vertical container and the images are not aligning because of the extra little border here. Someone suggests setting their vertical box to center, but that is not gonna fix the issue. Now this person didn't post their graphics, so I had to make my own and they're horribly ugly, but let's have a look right now. I'm going to create a new Godot project, user interface for the control. I'm going to add in a child node of a vertical container. I will set that layout to full rectangle for this example. Now I'm going to add a child of a textured button and I will actually make two, so I will control D to clone that. Now for the first one, I'm gonna come over here to textures. I'm gonna drag in my beautiful image button one and for the second one, I'm gonna drag in my button two. Oh, gotta pull that drop down first. And as you can see, they're aligning on the left, but they're not quite aligning and even if I set my box here to align center, that's not gonna fix the issue because I need to center the images on the button. So I'm gonna choose my texture button here. I'm gonna scroll down to the control and I'm gonna say size. I'm gonna uncheck full and check shrink center. I'm gonna do the same thing for the other one. I'm gonna scroll down, control, size flag, uncheck fill and check center under the horizontal and there you go, they are now centrally aligned and that is how you fix that problem.


Hi guys, this is Jason here from the Nathaniel School of Music and in this lesson Let's navigate through the problem which most of us pianists face, which is shifting between our chords and I've prepared Five short tips to help you work on your chord shifting There are it's of course a work in progress But I will do my best to tell you what I know and what helps especially beginners with the process of chord shifting Especially when it comes to things like triads. Okay, so for this exercise, I'm just taking the C major scale and Pretty much going to choose the chords of the C major scale. So if you have let's say two chords Let's say C major and A minor, you know C major and A minor I'm playing both these chords Pretty much in a six by eight rhythm for now. I've just decided that rhythm pattern So let's look at the pattern again. One two three four five six and then change two three four five six Okay, you can do other chords as well This rhythm pattern is quite nice. It's used for songs like hallelujah and a wonderful world and whatnot We've also done a lesson on six by eight arpeggio playing. You may want to check that out as well It'll be in the comments. So before we get started on my five efficient chord shifting techniques on the piano It'll be great if you can subscribe to our YouTube channel if you haven't already and turn on the bell icon for notifications Let's get started the first tip when it comes to shifting between the chords I've observed with a lot of newer piano players is that when they play two chords C major and Then a minor So what needs to happen is both the chords have different notes So you need to you're already visualizing C major and then you need to re-visualize a minor I guess you need to do that well in advance. Don't you you cannot do a minor visualization after you finished C major So a great way to navigate through two chords would actually be to think of the next chord while you're playing the current So if you do C major C major I'm already thinking of my a minor shape. I'm kind of visualizing it I'm storing it here and bringing it out when it should come on the beat So this is what I call is just predicting the future, you know, so you go C major which is this hold and a minor which is that hold now you have to go from here all the way to here This is not the world's easiest thing to do So you need to imagine this shape and imagine and of course you're on this shape You're gonna start from here So good way to navigate to a minor and be on time is to just visualize its shape So you go C major a minor and you see what I did with my thumb finger there I stretched it out because I don't want to lose out on what I'm doing with C major I wanted to come and anticipate the a minor and not be a kind of a jerk a jerky motion While going from the C to a minor. So it'll sound like this C major a minor right Back to C major Maybe G major That's a bigger jump C major G major Maybe F major Up to G major And back to C major Okay So you don't want to do something like that right, that's not gonna sound very musical and More importantly when you play chords, you're supporting the singer and playing with drums The drummer doesn't have to change anything. He's pretty much playing on the same groove And the singer is just going to go with the flow So you need to work things out with respect to your band So you can learn this or develop this just by playing with musicians, you know They will push you to kind of get this done inevitably But when you're doing practice at home, I think you need to keep this in mind So it'll really prepare you for like the real world when you actually get to play with More musicians, right? So that's about predicting the future At least on the piano you should be able to and moving on to tip number two So generally when constructing chord progressions Most artists or most songwriters tend to always have a note in common between the chords And when navigating through the chords or through the changes of the chords That common note could actually be retained. So for instance, if I take C major here I could take or I could leave or retain C and the E Because C and E are common to which is the next chord A minor Which is A C E, right? So instead of going All the way down and displacing my fingers I could just use the logic behind the chords, you know, the chord has three shapes Root position first inversion and second inversion So you could choose The first inversion of A minor which has A up top And save anyway, even if you're playing a six by eight pattern with four fingers and you're a triad You still have one finger free So you could use the ring finger to kind of add that A and not play the middle finger for the G So C major A minor C major so This will work really great for most of the popular chord progressions However, when you do something like F major to G major, there's nothing in common there, right F major G major So when there's nothing in common, you hold your shape or you hold the inversion So if F major was in the second inversion As it is now You could hold the inversion and just move it up and then come back So let's just walk you through a few inversions and a few chords C major C A minor You see that's an inversion. It's C and E are common. Maybe F major now Okay, and then maybe a D minor And by the way F major had C in common now D minor Right and then back to C major. Now, how do I do that? There's nothing in common between D minor and C major So I go to the old technique which we discussed earlier, which is predicting the future. So Back to C. So I just stretch out my thumb a little bit and come back. So let's go through the chords again C major A minor F major in common lot of D minor back to C major predict the future And we use inversions with the common notes And also what I'd recommend with inversions is to just write down the chords as they flow from one chord to the other We've done a lot of tutorials on chord inversions So do head over and check out a playlist which we made on chord inversions So that's about chord inversions moving on So the third tip which I have when shifting between chords is basically to break it up Now a chord progression may have a lot of chords. It could have four chords or in a 12 progression like blues It could have 12 chords now. This might be tough to navigate Right, especially for a newcomer to the instrument So what I would highly recommend is just take it two at a time or maybe four at a time or Yeah, definitely start with maybe two at a time and just work through those changes Two at a time is completely fine as long as you're playing it musically with dynamics And as long as you focus on your timing and the clarity of sound, right? Don't bother about finishing the job It's always about being a bit patient. So you take Again, maybe a C major chord C major And then G major there So this is a little tricky. I have to use my ring finger on G Then I have to drop my thumb down Bring the index there And then it's awkward to bring my middle finger there. So I have to bring my ring finger there, right? So C major with the middle On G and now G major with the ring on G. So that's a little tricky. Now you may need to work this out. So If you have four chords, don't bother about playing all the four. Just play these two. So C major G major C major G major And just get through that And remember, you also have to work out your bass notes, right? If you're playing chords in the right hand What does your left hand do the left hand at the bare minimum has to play the root of the chord or the name of the chord So that's another job. So unfortunately, there's not really a shortcut with respect to the bass But don't lose the bass. The bass will always play the true root of the chord irrespective of the inversion So even if you're doing This it appears as though B is the bass or the root, but it's not it's a G major chord and you have to play G So try that out C major G major with the G that's a strong G major chord right there G major C And just get these two chords And then maybe the other two Right, so work maybe in pairs in sets of two or in sets of four, whatever you you feel is convenient for you Right, so that's about breaking up your chord progression into smaller pieces That way you really get the changes going on well for you and it's also important With any of these points, which I'm mentioning to play slow and also relax and enjoy yourself Ultimately you're playing music don't don't get worked up because of it just relax put in some time And the results will follow right just enjoy the journey of playing the instrument in the first place The result will always show itself Right everyone so the fourth point which I wanted to mention about shifting chords is how we can use functional harmony So functional harmony basically tells us that every chord has a different purpose every chord needs to Either lead to another chord or a particular chord will feel very stable or very homely Right, so when you think of a set of chords or a cluster of chords in a functional perspective It's a very it's very interesting for your mind your mind automatically wants to digest that information And you really are in the hunt so to speak right So whenever we try to play a tricky chord progression Sometimes we forget the point of the chords. Why are you playing the chords? They are beautiful things. Harmony is an is an amazing phenomenon It it allows you to tell a story with just your music, right? It's incredible So you need to sort of enjoy what you're doing and a great way to enjoy what you're doing is to first understand What the chords are why are they? Where they are placed and what feels stable what feels unstable what feels at home What feels away from home and then how do you connect from one point or the other?  So just to give you a couple of examples here. So if I take C major Okay, the C major scale if I do maybe a D minor there Then a G major Right, you feel what happened there D minor G major and C major seem to be a cluster of chords D minor is what we call the subdominant chord Which is the two minor? This is the five major or the dominant and ending on the tonic Right, so this you can do even with a two minor Five major And then another minor the rather the other tonic which is the A minor So by analyzing those three chords D minor G major to C major Or D minor G major to A minor you kind of put them together in a very musical perspective tonic Is the home? Subdominant could be either your two or the four Generally in the major scale at least the dominant chords could be the five or the seven diminished And the tonics could be the one or the six while the E minor or the three minor is a very interesting chord Which I generally tend to call as an embellishment. It's something you could just use for flavor Okay, so try to cluster cluster your chords together and see how they merge together Right, you could also look at them as a cadence. For example, the plagal cadence going a four going to one F major going to C major All right, so that's how you link those two It's the amen cadence in church music or the dominant or the authentic cadence as we call it, which is the dominant going to tonic That's the five one Or you could do what I call is the epic cadence Which is the six flat going to the seven flat and then going to the one major which is like a long set of chords So even though it is tricky to shift between these chords The whole point is you are hopefully motivated to playing them not only because you need to play them But because you just love the way they sound So you want to be part of that experience, you know to play such amazing harmony And that can only happen when you cluster them together and understand why this one is there Where does it want to go and eventually the tonic or the conclusion and then your story is over Right guys, so the final tip which I have while shifting between your chords is It's more of a sort of a guidance from a maybe more experienced player like me It is okay to make mistakes. There is no problem of making mistakes as long as you shift on time So what I mean by this is a mistake Let's look at what a mistake is first of all a mistake is either you play a bum note as we call it Like a wrong note, which is not part of the triad of that chord Or you you just kind of hesitate. You don't know where to go next Right So this may really help when you practice with a group of people And work towards a common objective It's great to play with a singer or a drummer who keep a consistent groove and who have a different perspective than you But again, if you're jamming alone at home I would definitely recommend singing I would definitely recommend being part of the music and don't worry and don't be too possessive about your playing Try to make it more about the music and less about your piano and your fingers and your Chords and whatnot right make it about the song and serve the song. So if you have let's say Uh, a problem to go from maybe C major To a flat major, which is a little tricky, isn't it? So you go C major A flat Well, you could shift between that using inversions, but if it was tough for you What you need to first do is maybe play the chord once play the C major chord C major A flat And come back and don't stop playing. It's okay if you made that mistake. It will eventually E's out Right. So let me just take a few chords and show you how I generally play through the changes In this system where, you know, timing and shifting on the bar, you know, is way more important Then landing there and making a mistake, especially when you practice Don't worry about the mistakes because the mistakes will iron themselves out eventually. So you go C major F minor A flat major B flat See right now I'm focusing on the music It's more about the music so it's okay if you make a couple of mistakes or more than a couple of mistakes It's okay. This is what you call as practice in any case, right? How else are you? What is practice? You have to practice stuff. You don't know, I guess so yes So practice it till you know it, all right guys So these are a few tips on shifting between chords efficiently on the piano. Hope you found the lesson useful Let's recap first off like I said predict the future And the very next chord you need to know the shape before you head over there The next thing would be using inversions and having clever pathways between chords using common notes If there are any or common shapes then we need to break up our Chord progression two at a time or three at a time. Keep it simple The fourth point I mentioned was usage of functional harmony Understand the role or the goal of what you're doing, right? What are the emotions of these chords which you're using and how does one go to the other and last but not least The mindset while playing your chords is very very important. It's okay to make mistakes You need to focus on timing and try to keep yourself If you're practicing at home, it's a little tricky But try to find a few hostile environments What I mean by that is try to challenge yourself like it shouldn't just be you playing the piano only Try to find a friend or a family member who can sing along with you or maybe collaborate use recording facilities And try to work with each other and that'll really push you and your technique as a piano player, right? And don't lose the left hand as well. I may have been playing a lot with my right hand But please don't lose the left hand the left hand always plays the bass or the root or the name of the chord As always, this is Jason here from the Nathaniel School of Music. Thanks a ton for watching this video Do check out all our other lessons and leave us a comment if you'd like me to handle something specific which you'd like to learn and consider following us on Patreon as well, you can subscribe there There are a lot of things going on and also look out for a bunch of things coming your way with Nathaniel with some of our Courses which are pretty much online now. So I'd love to have all of you guys on board. Cheers


Hello everyone, I am Mrs. Sunita Dole working as an assistant professor in computer science and engineering department of Valshan Institute of Technology, Singapore. Topic covered here is syntax analysis, compiler is a program that reads a program written in one language and translate it into equivalent program in another language. Syntax analysis is the second phase of compiler which is also called as PASR or the hierarchical analysis. Every programming language has rules that prescribe the syntactic structure of well formed programs. In Pascal, a program is made out of blocks, a block out of statements, a statement out of expression and expression out of token and so on. The syntax of programming language construct can be described by context free grammar. The PASR checks whether a given source program satisfies the rule implied by the context free grammar or not. If it satisfies, the PASR creates the parse tree of that program, otherwise the PASR gives the error message. In this video, I am going to cover the role of PASR and context free grammar. Learning outcome At the end of this session, students will be able to identify the different errors like lexical, syntax, etc. Know about error recovery strategies, write the derivation for the given expression and draw the parse tree for the given expression. In compiler model, the PASR obtain a string of token from the lexical analyzer as shown in figure and verifies that the string can be generated by the grammar for the source language. So, the PASR works on a stream of tokens. It should recover from commonly occurring errors so that it can continue processing the remainder of its input. The methods commonly used in compiler are classified as being either top down or bottom up. Top down PASR builds the parse tree from top to bottom while bottom up PASR starts from the leaves and work up to the root. In both cases, the input to the PASR is from left to right, one symbol at a time. The most efficient top down and bottom up method work only on the subclass of grammars but several of these subclasses such as LL and LR grammars are expressive enough to describe most syntactic construct in programming language. If a compiler had to process only correct program, its design and implementation would be greatly simplified but programmer frequently write the incorrect program and a good compiler should assist the programmer in its identifying and locating errors. Program can contain errors at many different levels for example lexical such as misspelling an identifier, keyword or operator, syntactic such as arithmetic expression with unbalanced parenthesis, semantic such as operator applied to the incompatible operand and logical such as infinitely recursive call. Error handler in PASR has simple to state goals. First it should report the presence of errors clearly and accurately. It should recover from each error quickly enough to be able to detect subsequent error and third it should not significantly slow down the processing of correct program. Error recovery strategies. There are many different general strategies that a PASR can be used to recover from the syntactic error. First panic mode on discovering an error the PASR discard input symbol one at a time until one of the designated set of synchronizing token is found. The synchronizing tokens are usually delimiters such as semicolon or end whose role in the source program is clear. The compiler designer must select the synchronizing tokens. This strategy is simple as well as guaranteed not to go into an infinite loop. On discovering an error a PASR performs local correction on the remaining input i.e. it may replace a prefix of the remaining input by some string that allows the PASR to continue. A typical local correction would be to replace a comma by semicolon, delete an extraneous semicolon or insert a missing semicolon. This strategy can correct any input string and has been used in several error-repairing compilers. Its major drawback is the difficulty it has in coping with the situation in which the actual error has occurred before the point of detection. Third error production. We augment the error grammar for the language at hand with the error production to construct a PASR. If an error production is used by the PASR then error diagnostic can be generated to indicate the error nearest construct in the input. Fourth global correction. We would like a compiler to make as few changes as possible in processing an incorrect input string. There are algorithms for choosing a minimal sequence of changes to obtain a globally list cost corrections. Given an incorrect input string x and the grammar g, these algorithms will find a PASR tree for a related string y such that the number of insertion, deletion and the changes of token required to transform x into y is as small as possible. Till now, we consider the errors at many different levels in the program and the error recovery strategies. Now pause this video and reflect on this question for a minute or 2 minute and write your response. Once you return the answer to these questions then you can restart playing this video. The question is identify the types of error in the following example. I hope all of you have completed this activity. So the question was identify the types of error in the following example. First, misspelling an identifier keyword or the operator is a lexical error. Hence, 12ab is a lexical error. Arithmetic expression with the unbalanced parenthesis is a syntactic error. Hence, option b is an example of syntactic error. Operator applied to the incompatible operand is a semantic error. Hence, 2 plus a of i is a semantic error. Infinite recursive call is a logical error. Hence, option d is a logical error. Context free grammars. Many programming language constructs have an inherently recursive structure that can be defined by context free grammar. In a context free grammar, we have a set of finite set of terminals, a finite set of non-terminals, a finite set of productions in the form a derives alpha, where a is a non-terminal and alpha is a string of terminals and non-terminals include the empty string and a start symbol. Grammar for the simple arithmetic expression is given below. Notational conventions, terminals, lowercase letters early in the alphabet such as a, b, c. Operator symbols such as plus, minus, etc. Punctuation symbols such as parenthesis, comma, etc. Digits 0 to 9 and bold-face string id or the if are the terminals. Non-terminals, uppercase letters early in the alphabet such as a, b, c. The letter s, which when it appears is usually the start symbol. Lowercase italic names such as expression or statement are non-terminals. Uppercase letters late in the alphabet such as x, y, z represent the grammar symbol that is terminus or the non-terminals. Lowercase letter late in the alphabet for example u, v, x, y, z represent the string of terminals. Lowercase Greek letters alpha, beta, gamma represent the strings of grammar symbols. If a derives alpha 1, a derives alpha 2 and so on up to a derives alpha k are the production with a on left then we may write a derives alpha 1 or alpha 2 and so on up to alpha k. Unless otherwise stated the left side of the first production is start symbol. So the grammar for simple arithmetic expression using these notational convention is given below. Derivation. So derivation is a sequence of replacements of non-terminal symbols in general. A derivation step is alpha a, beta derives alpha, gamma, beta. If there is a production rule a derives gamma in our grammar where alpha and beta are arbitrary string of terminal and non-terminal symbols. The first symbol means derives in one step. Second symbol means derives in zero or more step. Third symbol means derives in one or more step. Derivation of string id plus id using the grammar for simple arithmetic expression is given below. At each step of derivation we can choose any of the non-terminal in the sentential form of g for replacement. There are two types of derivation left most derivation and right most derivation. If we always choose the left most non-terminal in each derivation step, this derivation is called as left most derivation. The top down parser try to find out the left most derivation of the given source program. If we always choose the right most non-terminal in each derivation step, this derivation is called as right most derivation. The bottom of parser try to find the rightmost derivation of the given source program in the reverse order. The leftmost derivation and the rightmost derivation of the string id plus id is given here. Pastry. A pastry can be seen as a graphical representation of a derivation. Inner nodes of a pastry are non-terminal symbol while the leaves of a pastry are the terminal symbol. The leftmost derivation and the pastry of the string id plus id is given here. The rightmost derivation and the pastry of the same string id plus id using the grammar for simple arithmetic expression is given here. Ambiguous grammar. A grammar produced more than one pastry for a sentence is called ambiguous grammar. As there are two derivation as well as two corresponding pastries for the string id plus id into id using the production of simple arithmetic expression grammar, hence this grammar is ambiguous. These are some references. Thank you.