Alright, let's get into this. So, I'm gonna first do the bio.  Get a Koji, get off Linktree. This looks pretty good for a Linktree, but Koji's just got so many cooler things. You don't need to be doing that to yourself. Okay, Shattered streaming now. Okay, first off, no.  One of the most common things people do is discover if they're gonna go deeper with somebody with IG. Just doing streaming now is bad, bad messaging. Here's the other thing, Texas, one of our biggest states, one of our dumbest states. You need to be more specific so people can bond with you. So if you think this way, somebody in El Paso is gonna be way more excited to listen to you if they find out that you're from El Paso. Even if you're from all around Texas, it's West Texas. You wanna be specific about where you're from because it gives people more of a bonding sense if they're from there, it'll help build you up in your local area. DM or email for booking. I would just do this. Everybody knows they can DM you. Put the email in there without that and then we're gonna get it one sentence to make somebody else excited about you. Maybe two sentences about what you sound like. As we're always talking about on here, you should have that one to two sentence pitch. Let's look at your grid.  You're showing personality. You're getting fun pics. I like this, like very, very good stuff here. Yep, who doesn't love these pics?  Yeah, I mean, this looks good.  There's this weird thing that all these marketing studies show, which is that younger people respond to color palettes that seem like they're an aesthetic more. I like that for the most part, these color palettes are feeling very like one and the same. So that's feeling good to me. The other thing I don't love is, what do we have? This is just the new song. Okay, this looks like you got some good stuff, but the best thing you could do on Instagram is break these things up into numerous highlight reels and show people what they're about.  Break these up more, make it more of a thing. Okay, I'm going to the next one. Next one we got is called Black Wonder Twins. Okay, see, this is exactly what I'm talking about. Perfect Instagram stories. So, Twitter recording artist, I like that, but I still think that there's more to say there. Like we got to get them excited. Recording artist does not tell you much, doesn't build a bond. We need to know more about you. This was a big theme of the last live stream is that like you're not bonding with people if you're not being specific, but you also need to be specific in a way people understand. All right, let's look at your legs.  I assume this is your website looks at my links, AI.  I have to say that's pretty good. I've never seen this before. In fact, I'm going to save it for later. So yeah, and then I like that you have your individual Instagram. So if people want to go deeper, you are obviously doing pretty good with your followers. I like the highlighted reels here. Hell yeah. Yeah, little JPEG mafia. I need that meme. That's me. Hell yeah, screenshot. Let me see what else you got here. So I see how you're saying like this is the song kids.  And when you're doing these highlights, it's sometimes best like studio, like song, videos, live. That's really the most effective way of doing it. All right, let's take a look at the grid. Oh yeah, I like the memes. I like that you guys have this aesthetic like this looks like that link thing. Look at that fit pic. Very, very tight, very tight, very tight. Handsome fellas over here. Yeah, no, the grid looks great. You guys are killing it. I think this is mostly good, good stuff. Okay, so WIO, so Roots and Jackson, Wyoming, Basted LA. I like that for you since you got the WY for the Wyoming in there, but we still need to tell people why. We need to tell them why they might be able to bond with you, give them that pitch. We still don't have that in the bio. Nah, bro, this is weak. You can't have this link tree. Gotta go get K-O-J-I, the website is withkoji.com. Make something good. It'll take you 30, 40 minutes and it'll do you a million favors getting fans to go over to being it. I have tons of videos on it. You gotta do it up. Okay, so yet again, I think we're gonna have the same theme. I like that you have the South by Southwest and the LACMA theme. We wanna get instead of the songs or the album period, do the videos, do the songs, do the themes that you guys have. Oh, it's pronounced WIO, got it. I like that. I feel like the grid school, I like this. You're like showing off the thing. Oh, nice, the Lindsey Von Doc. Very cool, very cool. Yeah, this looks good. Yet again, I feel like you could put some filters. This isn't looking like, we gotta remember, you really, Instagram is a place of aesthetic. We want aesthetic, even though it's dying fast and apparently Facebook is having meltdowns every day.  Okay, so we got Chitty Azar, got it. Okay, so yet again, curiosity in the bio. I like ATL for the location. That is definitely good. Linktree again. You guys gotta get with the program. Yeah, no, no, no. You could do so much better than this. I see you got great pictures too. Okay, we got no story highlights. Story highlights are one of the most important things for people getting to know you.  And then they go there, they can't get to know you because you don't have any of the things that help get to know you there. The grid looks great though. I feel like this is good. Yet again, we got aesthetic colors. Everything feels like one. Yeah, for the rest of how bad I just clowned you and roasted you, I feel like the grid is good. The next one we got Luxrum Official. Shows Aura, I'm curious what the Aura highlights gonna be like. Sound, come on, videos. Saying your videos, I don't know if that's an error, but like, if your videos have no Saturdays for your music, that's that. Oh, it's cause you're using the Instagram, the Spotify thing, nevermind. Okay, your fave prog nerds from Miami. I like that, but I feel like we could give more detail on what it is. I love that if everybody's active in the band on Instagram, having that, let's look at this. See, you're followed by bacon bits, my boy. Ah, I mean, yet again, this is just just streaming. You could do so much better with a Koji. Let's look at the grid. All right, grid, feel like we could polish these with some filters and some editing a little bit more. Feeling a little raw, but some of these look good, but I feel like we could get a little more consistent. Yet again, the aesthetic, y'all, gotta have it. And you're followed by Cosmo D'Amonix, some of my best friends. Literally my best friend is in that band. Let's see what's in the story now.  Oh, I like that, that's good. Like, while I talk about not teasing, this is good because it's stories you're allowed to be superfluous in stories. Let me get to the next one. So we're gonna do Sebastian Matteo music next. All right, so this is one, man, it's always tough. So like, I love that you have 4.2 million on Spotify, 193,000 on TikTok, that's cool. But yet again, it doesn't mean a lot because there's tons of music with a lot of plays and then people aren't gonna investigate. That doesn't do much for a new flower. I know it impresses music business people, it gets doors open, but you need to yet again create a curiosity gap even if you have good metrics. Let's check the link tree.  You know that meme, old best friend was link tree. Now new best friend is Koji. Okay, let's look at the grid. I like this, feels the same as each. I do feel like the color palette on your camera, you see like this is doing you a lot better. You can, you look good with some good light. People, loom cubes, ring lights, they are not expensive and boy do they go far in making people drill for you. I mean, we have to also remember with music, you know, people are weird.  But you know, you get way hotter and people who are attracted to you and like your music, they forgive a lot. I don't know what age 2019, 2018 is, but this is what I would say is doing years, that's not a thing. Music, great. You gotta stylize things.  Here's my thoughts on Marvel movies, then the other one could be what band practice is like, tell people what they're getting the glimpse of. All right, I'm gonna move on to the next one, which is ether unlimited. I feel like if you don't limit the amount of ether, it's gonna go really bad.  The unlimited is silent. I actually like that, but RS producer, Barber, I like that too, but yet again, no curiosity gap in here. I always am hesitant since I'm old that when I don't understand something that maybe I just don't get it, but something's telling me you could be doing more than just these emojis here that will get you to have people understand you. Here, now we have our first really good example of how you should be doing your highlight reels. You got all these different themes. I don't even know what mini me or crystals is, but like I see studio major releases, merchant events. This is how it's done, people. We have a winner here. And look, they're rewarded. They have a lot of followers. Let's see. Yeah, I mean, this is looking good so far. You know what? It's an underrated thing that putting your logo on a MOOG really does look fantastic. You know, it really is some underrated graphic design on that. Yeah, I mean, I feel like this is good. You got some good things that connect to the audience with the memes and the messages. I feel like you're doing good here. I feel like this is the best one we've looked at. Worms-er, you're up next.  Very strong, my guy, very strong. Yet again though, we have DJ and producer. Are you a DJ of EDM? Do you DJ hip-hop at the local bar? These three arrows here, chief, come on. You know better than that. I see your name in here all the time. I've taught you better than that. I don't need to go through the stories. I already said this.  Let's look at the grid. Yeah, I mean like, look, this is looking like you got an aesthetic, you got a vibe. I'm feeling it, showing off the merch. I feel it. Cool. So we got Leffers official. Okay, so I see it's Leffers now. A pioneer merging the fifth of house with the raw energy of rap music, finally. This is much more where we want to go. I would be even more specific than that and try to get it a little more exciting, but at least we're close here. Tour and music for your highlights. Excellent stuff.  Oh, I remember this from the last stream, yes.  Let's look at the grid. Feel like the aesthetic on the grid is strong dog. Feel like you're doing good there. I'm moving on, JTH third. Okay, so here's the first thing. I would make it clear that that's your name, that you're go by because I wouldn't be able to tell that.  I'm over you all. Yeah, I mean, the grid's looking okay. I just feel like, you know, we're not even establishing that this is your actual name or how to pronounce it. We got to give people a cursory glance. People are coming here totally blind to you and you need to convince them that you're worth paying attention to. You're not doing that in that profile. Okay, we're on to Kang Music next. Like this picture, it's good aesthetic we got going so far. Okay, independent artist. Okay, don't ever need to tell anybody you're a DIY artist or you're an independent artist.    You don't need to tell people that. We got musician of bad right here, totally superfluous. I write music so you can escape. I like anime and comedy, target to get fans, feeling tired of life.  Yes, yes, yes, yes, yes, this looks good. Let me, since we've been doing everything else. And the one thing I would say is we're not really pointing out where they could stream on Spotify or YouTube very fast. So you could do that better on there since like that's the minimum main thing you probably want. I like this, my songs, my stuff. This is totally nice and polished on here, like that. Grids feeling good.  This is good. Let's polish the bio up a little bit, but then after that, I feel like what's the meme? We bustin' fam, no cap. I had to, I had to do it. Okay, Tristan Palmer. I make Vibe Acoustic music and produce bangers. I like it, but more specific. OC for location, great. Yet again, not everybody uses Spotify. This is why we want a Koji. Let's see what the baby Yoda. Okay, we all know this one that you can make with DistroKid where they listen to music, but yet again, themed ones. Let's look through the grid. I see, you know what's a good lesson here? Your stuff is real simple, but it's all the same vibe. That's a vibe. I like that a lot. People overthink their Instagram so many times that if you're doing a similar vibe and the thing I always tell you guys about social media is it's funny because I'm not really doing the thing today that I normally do because I was late here, so I didn't wear the glasses I always wear, I didn't wear the hat I always wear, not wearing a band shirt, I'm just wearing what I actually wear when I'm going out.  Part of this is making people recognize your aesthetic, so yeah, okay. Onto the neck, Maddie blunt.  Come on, chief, come on. There's no way that's doing you any good compared to what you could be doing for your music.    The aesthetic here, many feak.   Other than that, man, you're killing it. You're absolutely killing the game.   Very polite on the rest, but my code, check out.  We're doing Super Smack Pop next. All right, all right. So Super Smack and the POP like that, Pop Rapper with the Dancer band, nice, nice. I like that. I like putting the AAPI in there.  I know tons of friends who are of a minority that really get a lot. Spotify 40K, come on, dog. Get people more excited and curious than that. Let's check out your link. All right, this looks good. I see Rolling Stone India. Yes, yes, yes, yes. Love to see my day job helping you out, yeah. Yep, Dancer band. I wanna see the Dancer band.    This looks great.  I like the colors are of aesthetic. I mean, we're still going back to the last profile. That's the best one. Let's check out the grid. I like the colors match this boa even very polite. You're killing the game. You get it. I see that you got some stuff about Asian guilt. So you got getting some voter bill. You're making some connections with people who are in your community. Love it. Love to see it. Love to see it, dog. I'm feeling good about that. Maddie Bluntless does have a good explanation that he had to do the code for a contract for some spawn content. There's a guy who makes a lot of money from spawn content. I get it. I get it, dog.  We out here, as y'all say. Okay, Charlie from the county. Welcome to the county cinema artist girlfriend killer. I got no idea what's going on there, man. I almost want to want an explanation where that is. Like maybe we could try to do that, get some lines in here, but like that's feeling a little confusing to me. Yet again previewing a song that's gonna be out in a few weeks in your bio.  Come on, man.  Yeah, look, the grid looks great, but yeah, I don't even know what's going on here from that. The hyperfile from district kid, I mean, oh yeah. We all know how I feel about this. This is not it, chief. Like this is not doing you any good. All right. Okay, Santo Santo.  All right, do you buy Manchester? That's very unique. That helps tell story song. Yet again, we don't have it. YouTube, we know better than this. I do like YouTube Spotify for buttons. I have no idea what that says. Yet again, we're getting into a thing where my ugly American-ness, I don't know culture. What's outside of America is the world flat, who knows? But look, your grid looks great.  Like literally every artist, I've told you guys this so many times. One of the most important things up to having good songs is how you tell people about yourself to get other people excited about you.  Up next is Custface. Excuse me. Failed cult member turns to music. Very good. Okay, so what I like about that, even though it doesn't tell you how it sounds, there's a lot of people who are obsessed with that type of thing and they'll feel a vibe from it. So I like that a lot. I have no idea what's going on. I like the for fans of thing. It's a little broad since you put two beds that are very, very broad. I have no idea where the chat is, though, so that plays it down. Let's see what the lay low link is. I never really like these usually. Oh, so you're doing that. This is why you say I'll text you. You know, I don't love that because you should be trying to get people curious about you before you do things like that. They're not going to text you if they're not curious maybe, but that's a great thing to have in your Koji. Feel like this grid, I like the aesthetic in these six, but like the rest of this feels random, to be honest, and not aesthetic at all. Next up is Julia Forte music. I know this one. I do consults with Julia at times. So I've seen this before. Nashville, 17 year old singer, songwriter, NSI AI, posted acoustic cover a day to 100 tutorials and field trips, nine months with guitar, follow my guitar journey. So to give you guys a thing, I know this already, but Julia is new at guitar. She's chronic older journey, very, very smart, doing damn well too in a very short time. She's at nearly 10,000 followers. Perfect, perfect stuff for the buttons here, looking very, very good. I think like maybe the one thing I would try to do is get the colors to be a little bit more aesthetic. Got the Koji. And also like one of the things Julia does herself favors on is that all these things you would recognize but like, oh, I've seen that before. Oh, I've seen that before. Very smart stuff here and it's clearly working. Then we got ambient cloud. Chill wave synth musician. Okay, we're getting closer. Chill wave is a pretty specific mic or genre. So people who know what that is and vibe on show wave are going to be excited by that coastal dream single outro, I tell you, I mean, no one cares about your single that's coming out in the future. They care about what you have now. Get them excited about what they can consume right now, not what they're never going to put on their calendar to consume later. Like that we have Spotify, but we can have more buttons. I see you're doing the chill wave palette of colors. I like it. I feel the aesthetic dog. Hell yeah, we got, we got the classic stuff here. Yeah, they're the hour time. This is the way pool I want to swim in the chill wave pool. Yeah, you're, you're, you're doing good here. Let's get some more buttons and you got a Koji. You're doing good. Joe Tate music, a super excited super pianist with a captivating sense of harmony and melody, unique productions and a wide range of stuff. Way too broad. This is like bragging instead of getting people curious. We have to always think about sometimes it's so hard to balance how you oversell and undersell something. I feel like this is just too broad that anybody would ever feel a bond to it or be excited about it. You got to get more specific. Got a nice aesthetic going here though. Very similar stuff. We can use a few more buttons. You got the Koji doing pretty well. Okay, I can do Matthew very easy because it's just going to come up since I follow him.  Look at this stud. All right. Lakeland, Florida. Love that very specific part of America. So you're going to tell it. Stream the new single Philly account rock and roll from the sunshade state, not specific enough. We know what I think about the Spotify link already. Shows music, good stuff. We can have a little bit more to fill out there. So Matthew has this record called Flamingo County coming out or maybe out already. No, it's out already, right? Matthew, I'm pretty sure. And yeah, we can get this a little more aesthetic. I like what you're doing. The full biggest like this full thing is very strong. You should be like just working that into things. I feel like on the grid, especially getting that on like the buttons, things like that. Stay out of Mike. Mike, so now to be yourself, even if it isn't scary to tell the truth, even if it hurts, you know, things like that some people connect to. I'm not one of them personally. That can help. But yet again, we should still give a hint to what the music is like. We know how I feel about the single. We know how I feel about the link tree. Buttons, we're doing good here. I would maybe wanna make these a little bit more aligned with the aesthetic.   Make it a little more aesthetic, be pleasing. Grids looking good though, dog. Grids looking good. I like it. Let's check out quotes. We haven't seen that yet. Okay, it's interesting when you put press in because it can impress people. I like this. This is actually quotes from you and like your statements and then we got press here.  You can't like play the music business too much. But if you're trying to get up through the music business, having a press page can be smart. If it's like, not just about fan connection, that is definitely a vibe. So we're doing sunny smiles music. Okay. Wyatt LA base available on all platforms, check streaming link, you don't need to tell people that check streaming links below. That's the most available on all platforms, check streaming links below is some of the most superfluous thing. The only thing that's news is if you're not on any streaming and you're like, I'm only on band camp. I think Spotify is the devil. Otherwise everybody knows that about an artist in 2022. You're wasting characters. There's no need for that. Let's look at the fan like, yeah, we're not not it. But the aesthetic is looking good on some of these. I mean, I think we're losing it as we scroll down, but the aesthetic of the last few, I'm feeling the emotion, I'm feeling that. Dolce on the beat. Let's try you. Okay. These buttons looking good. So I feel like we're not introducing, we're just giving a lot of context. So like the contacts can get put in a Koji whereas we want to use the biography to get people to know you.  We're on the internet. No internet?  But I mean, like, look, I would really rethink all this. So many things that everybody pushes could be in your Koji instead of in your bio. I know a lot of you watch really big artists do things, but really big artists are not you. You're trying to convert people over. They're already have people who know who they are. That's why they have a different objective than you. On that note, you are the best. I saw we had a lot of people here today. I, in fact, I was so engaged with everything. I barely even looked at who was in there. So I appreciate you all. Not gonna do this same thing for a bit, but I'm gonna come up with something else to roast next week or something like this. So I thank you all for watching. You're the best. See ya.


When asked to talk about the future, needless to say this is an intimidating task. There's hardly any topic more relevant for the conduct of monetary policy than the future of inflation dynamics. Policies matter for what the path of inflation is going to be. It's behind the inflation spikes we've seen through the summer, and are they here to stay? You're listening to the ECB podcast, bringing you insights into the world of economics and central banking. My name is Katie Ranger. Every year we hold the ECB forum on central banking. It's also known as Cintra, as a nod to the Portuguese hillside town where pre-pandemic editions took place. This year, policy makers and economists met virtually from across the globe to discuss climate change, employment and inequality, and what all of this means in a post-pandemic world. They also spoke about inflation. It's a hot topic at the moment, with prices rising at the fastest pace in 13 years. Today, I'll be taking you through some of the discussion highlights and unpacking them. We're recording this episode on Monday, 4th of October, 2021. I said yesterday that we're back from the brink, but not completely out of the woods. And that is certainly the good translation of what we have seen, which was a very unusual recession followed by a very unusual recovery. And we are in that process of recovery. It's a very unusual recovery because it is the steepest recovery we have seen in the Euro area since 1975. That was President Christine Lagarde in her opening speech at Cintra. She described the ongoing recovery, which is really like no other. What does that mean? That gave rise to an unprecedented slump in economic activity. As economies reopen, we're seeing an increase in inflation, and that's the rate at which prices go up over time. A preliminary report last week showed inflation jumped to 3.4% in September, and it's likely to keep rising in the coming months. This is not just happening in the Euro area, though, as Chief Economist of the IMF, Gita Gopinath, explained. Inflation is running high, both headline and core in the US as of now. But the expectation is that this will be transitory. In the US, it is transitory in the sense that it will come down, but of course it will stay at some elevated levels for a few more quarters. And by the end of 2022, it comes down to levels more in the normal ranges. Before we go into the recent inflation spikes, let's take a brief look at where we're coming from. Over the past 10 years, we've actually faced the opposite problem. We've seen persistently low inflation, so prices haven't actually gone up a lot. And that comes with its own challenges. Since the global financial crisis of 2008, inflation has averaged just 1.2% in the Euro area. Now if you're an avid follower of our podcast, you'll know that our price stability objective is 2%, so we've been quite a way off that mark. President Lagarde named three reasons for low inflation. Number one, looser labour markets, as new workers such as women and older people entered the market. Number two, slower wage growth because of globalisation and automation. And lastly, a reluctance to raise prices because of competition from e-commerce. So back to the inflation spikes and back to something else, Gita mentioned. The spikes are transitory, they're temporary, they're something we're seeing now and policy makers don't expect them to last. What we are seeing now is mostly a phase of temporary inflation linked to reopening. So why have prices been going up? Well, there are several reasons, many of which are linked to the reopening of the economy after the pandemic, as President Lagarde has just said. There are two main factors. One is pent up demand and another is what economists call the base effect. There is the pent up demand that has returned strongly for certain sectors, but also the supply side bottlenecks that are persisting. And I would say that they're persisting much longer than many of us expected at the start of this year. So the pandemic driven bottlenecks I think are an important factor weighing on the prospects including for inflation going forward. Let's tease out the issues with supply and demand that Gita Gopinath is talking about here. Thanks to support schemes during the pandemic, many people could return to their jobs once the worst was over. Similarly, firms and banks had enough help to weather the storm and emerge on the other side. Now of course, this is great news for the economy. GDP has seen the steepest recovery in the Euro area since 1975, so much so that we expect it to exceed its pre-pandemic level by the end of 2021. However, we've seen a huge rush on certain products, on electronics for example. And this is causing supply bottlenecks, which have only been made worse by things like COVID outbreaks in ports and shipping constraints. All of this is pushing up the price of these goods. These supply chain disruptions are costly and producers might put up their prices to cover them. This can also cause some of the inflation we're seeing at the moment. Now that's normal after a crisis and it usually only lasts a few months. It might last a little bit longer this time though, because as President Lagarde said, the pandemic has caused a recession like no other and a recovery that has few parallels in history. There's another big factor affecting the inflation spikes and that's something we call base effects. Inflation collapsed last year when lockdowns were imposed, which is creating strong base effects as activity recovers. Of total inflation in the euro area today is due to energy prices, which are making up the lost ground from 2020. Base effects from last year's German VAT rate cut and the unusual timing of sales periods are also playing a role. Put simply, inflation is so high now because it was so low last year. It's all got to do with how inflation is measured. In the euro area, we compare how prices change from one year to the next. Last year, inflation collapsed because of the pandemic. Since then, the recovery has taken hold and activity is resuming. So of course, if you measure prices today against the very low levels of last year, it will look like there has been a huge jump in inflation. We've seen this particularly clearly in two categories. First, in energy prices. Half of the total inflation in the euro area today is due to energy prices. Demand for energy plummeted during lockdowns. We simply didn't need as much of it. No one could travel and offices and shops were shut. Now as life slowly returns to normal, energy prices are making up the lost ground from 2020. The second place we're seeing this is Germany and it's due to something very specific. Last year, the government cut the sales tax, also known as VAT, to boost spending. Now, German VAT rates are being raised up again. And that's showing up in the inflation spikes we're seeing today. All this suggests that the spikes aren't permanent, that they're not here to stay. The pandemic has caused a recession like no other. And a recovery like no other that has few parallels in history. The inflation response reflects the exceptional circumstances we are in. We expect that those effects will ultimately pass. So what will come after the pandemic? President Lagarde mentioned three new trends that the pandemic has created. These three trends may impact inflation in the future, pushing prices further up or down. Let's look at the demand side of the economy first. Historically, core inflation in the euro area has mostly been driven by services inflation, which has contributed 1.1% points to the long-term average of 1.3% point. This is both because services have a higher weight in consumption and because goods inflation has been held down by global forces of automation, competition, globalization. Services inflation gives economists a good idea of how strong the economy is. The key question here is, will there be much more demand for services once we're out of the pandemic? So people have saved up a lot of money during lockdowns and we know from surveys that they aren't planning to spend these savings anytime soon. Of course this can change. They might be willing to spend more and also take more risk as we go out of the pandemic. We at the ECB expect that by the end of 2022, consumption will be 3% higher than before the pandemic and that would drive up service inflation and with that lead to higher prices. But there are also limits to how much services can be consumed. You probably won't get your hair cut twice just because you couldn't do it during the lockdown and we saw that even when restrictions were eased people still spent 15% less on services than before the pandemic. The second trend is related to changes on the supply side of the economy. The pandemic has delivered a major shock to global supply chains and domestic labour markets. It has significantly accelerated the process of digitalization according to one estimate by seven years in Europe and it may have distributional consequences that lead to changes in social contracts. In the long run some of these changes might dampen inflationary pressures. Digitalization is a particularly interesting one to look at here. We've all seen that the pandemic has massively sped up that process. President Lagarde goes on to explain one scenario that digitalization could trigger a second wave of globalization. With more and more services being available virtually it could become cheaper to produce and offer certain services potentially with fewer people involved and that could make these services cheaper pushing inflation down. On the other hand supply bottlenecks could lead to higher prices. With the lockdowns across the world many firms have struggled to get hold of the materials and products that they needed. Previous pandemics such as SARS showed that such bottlenecks can push firms to make changes to their supply chains and productions. This can make things more expensive. Let us now look at the third trend. We've looked at the demand side, the supply side. Let's look at what comes next which is probably the most important yet least explored at this point in time and that is the green transition. The shift towards a low carbon economy. The pandemic has given the green transition a boost. It could lead to an accelerated increase in auction prices in the EU emission trading system, the introduction of carbon prices covering a wider range of economic activities and the adoption of a carbon border adjustment mechanism all of which could have a direct inflationary impact. With ambitious transition policies being drawn up in Europe we need to better understand what these mean for prices, adds President Lagarde. One of the examples she gives is energy prices. Today 15% of our energy consumption is from renewable energies. Up from only 5% in the 90s. We need to get a better idea of how the green transition will affect inflation. So these were some of the topics at the 2021 ECB forum on central banking, the current spikes in inflation and how long the bottlenecks that are causing them will last and the longer term trends which can push inflation either higher or lower. Check out the show notes for further reading on this topic. You've been listening to the ECB podcast with Katie Ranger. If you like what you've heard please subscribe and leave us a review. We'd also love to hear from you so do share your feedback and ideas with us via social media. Until next time, thanks for listening.


Europe, Germany, the periphery of Europe, France, is fragmenting because of four parallel crises. Public debt, private but debts, low levels of investment in the green technologies that we need, and the green energy union that is absolutely essential, and the lack of anti-poverty funding. Those four major crises are common to all of us in Europe. The reason why Germany is now experiencing a collapse of its political center is because it is flooded with liquidity caused by the eurozone, but it does not have the capacity to convert those into investments in the good quality jobs that the Germans deserve in a Europe that is democratizing. The European New Deal has answers on how to solve these four crises simultaneously beginning in the heart of Europe here in Germany.


Okay, welcome everybody to Mycroft Developer Sync August 14th, 2020. So when we last left our Infrared Group of Developers, we were discussing potentially having a regular meeting to go over pull requests from the community. Part of that being motivation for that being establishing a regular setting a limit, at least on the amount of time my developer will have to wait before getting an answer to their pull request, whether it's yes or no or we're going to kick it down the road. But in any case, at least trying to get back to every pull request in a timely fashion. So I think we can definitely discuss that. Is there any other agenda items that people want to talk about today? Yeah, I reviewed the pull request we discussed yesterday. I want to talk about that a little bit. And what was the other thing? I think the other thing I can just work out with Ken offline. As far as where on the device, the NAS device, these things are going to, these way forward, you're going to live. But yeah, so I think yeah, that's it for me. I just wanted to make sure people saw the call really come up to Monday. Thank you for preventing installation and installation skills. That seems like a pretty cool function to honey. Yeah. Okay. Do you think this is going to impact your 20 oh eight release schedule? I mean, remember that it's not critical to get it out on a particular date, but we do want to keep up the practice of doing regular updates. Yeah, I need to. It depends on how much how many years of breaking changes we want to get in.  You know, this is like 10, 10 items that we want to get in there before the, before a breaking, breaking release, like, which of those do we definitely want, which of those don't really matter and which ones we hold up a release for. So I need to have a bit more of a look at that. I can update on Monday. Okay. Great. So that seems like something that we should discuss with, you know, but at least with Chris and Ken and, you know, with the community as well, as to, you know, what stuff you want to add to the major release, the 20 oh four release and then the 22 release. And then, you know, and do we want to turn it into a 20 oh nine release? You know, for example, yeah, 1908 came out in September. So, you know, it's not, it's not unheard of that, you know, we get not a little late of trying to get something in. Yeah. All right, well, let's tackle the PR issue first, because that's the most specific thing. And it's the most, you know, time sensitive, I think. So, Chris there, you did a review of this major pull request. What are your thoughts? So now that I reviewed it, I have different concerns. Current. So what we, what we need. This functionality is knowing when a service is ready so that we can know that the device is ready. This goes up your video because you're breaking out for me. I'm not able to hear you consistently. Okay. Is this better? Yeah. Okay. So, so I got to look at the PR. It basically what it does is it introduces. This class that does more than what we needed to. Meaning it checks for errors and starts and stops and other things. All we need to really need is ready. And there's not really anything that uses it. It's kind of like a framework that, you know, right now, the only thing that uses on air, for example, is just a logging that there was an error. The only thing that uses start is, you know, logging that it started the only. And I'm also concerned about how we're checking for readiness. It looked like there was a some sort of loop that, that checked for ready state rather than maybe using events, ready events to say, to tell that we're ready. So those are my two biggest concerns about it. And I think that's one of the things that we need to look at. And I think that's one of the things that we need to look at after seeing it. So I guess my question is. Should we. Since we have. The potential of some sort of status service. Coming up. Should we just implement a simpler device or. Or are ready. Bus message for now. And I think that was kind of already done by Chris before this was done. So I think that's one of the things that we need to look at. And I think that's one of the things that we need to look at. Do we go ahead with. Something that. I guess may or may not be used. And that's. My concern with putting something like this in. Is that if nothing uses it. It's potential and nothing will ever use it. You know, I like putting things in and we need them. Not when we think we might need them in the future. So. Those are my concerns. So why was. Why. Compelled to. Create. This large amount of code for nothing. That that confuses me. Well, I mean, I think. And I talked to guess about this a little bit yesterday. After I did the review.  It's a good idea. And people, someone might use it. And sometimes you're, you feel compelled to put something out there that people might use. And look, sounds like a good idea. And I've done this before in other code, but the lesson I've learned from that over time is that. People aren't always going to use things you think they might want to use. And to only implement things that you need rather than things you might need. But that's not to say that other, you know, people don't still think that something might be useful and want to put it in there anyway. So I think it's, it's a, you know. Cause it's just been, you can, you can elaborate a little more. Yes, maybe on. On the thought process behind it, but that's. Kind of what I get out of it. Yeah. So I think. A big part of it, I think was, was thinking about groups that are using system. D services or want to use this in D services. So. Jinx is doing the Microsoft OS. Is being on the system D. And it's potentially something that will be useful for us, but, you know, we've got to decide about how we want to structure that. And so. There. We also recently added these service books, which are, you know, callback in each of the services that, that can be overwritten. To provide that system D integration. Which line up with the status. Hooks that. Chris is talking about. So, you know, on. Start on ready on. Error on stopping those kinds of things. So. Yeah, it was to kind of tie those things together.  Querying. A service for. Whatever state it's in, not just readiness. And. But in terms of. This PR, the only. Piece of this year uses is that. Checking readiness. And it does that in a loop. In. The. Inclosure. Because it basically waits until. Everything should be ready. And then. Start the loop to. To check that it actually is ready. Rather than. I had with it actually. You mentioned that enclosure service is there's. Inclosure service itself didn't have, didn't use the stat, the status class. And the bus didn't use it either. So it was really just three of the services of the five that were actually using it. And according to the comments, I saw that there was an implied status. And the enclosure and bus services, which. Seemed a little, I thought, you know, I thought, I would think we'd want to be. Consistent with how we apply the status across. Well, so in terms of, you know, your comment about only wanting to implement functionality that we need, it sounds like somebody else has a need for this functionality. Even if it's not us right now. But.  Would it be, you know, would it address your concern if we went ahead and said, before we actually finalize this, we should implement it in a supervisor type of system, which I think would address the asymmetry in those couple of services that aren't using it. And would prove that it actually is the right thing, the right way to solve the problem in the context of having this, you know, the supervisor. Would that address your concern? I mean, I think it's expanding the scope of the feature by a fair bit. But. But, you know, if that's the direction we're going to, maybe it's worth looking into. But so. As. I guess I didn't understand. So I still don't get what the need for it is. You know, everything you said is was potential. That I heard at least potential need for it. I don't understand how this integrates with system need and how that works. I guess. Yeah, well, I'm not. I'm not a system D. But it's simply. Is an interface between system D and, and my cross core. Sorry, what was that? Is that what this is? It's providing an interface between system D and my cross core. No, the interface is through the services that are already included. So this, this ties into those services. So that you can across the message of us, you can query the status of, of any service. This is kind of like opening up all the services to being able to get their status over our message bus. Yeah. Okay. How do we get that status now? We. Well, so at the moment, you know, for example, when, when my cross boots, it, it does a bunch of stuff and eventually. Trains, it's intense. So each intent is a little neural net. And when it's finished training, it sends a message that says a finished training and then my cross says great. I'm ready to go. And so based on the assumption that everything before that should have. Should have happened. It just assumes that it's ready. At the moment, we don't check the status of anything. Pedacious could be completed, but other stuff could have broken or not be ready. And yeah, how do you determine that today? We just don't. Okay. And so this solves a problem in that moving forward, it could be used to determine if all the services are in an operable condition at the present moment. Is that correct? Hold on. A subset of what is in this PR could be used for that. This does a lot more than the problem we're trying to solve. It's not. It's shot. It is that. And then you kind of agree from that. Yeah, I'm just confused because on the one hand I heard it doesn't do anything and then I heard it does a lot. And I'm not sure if it does a lot of nothing or nothing, a little of everything. What does it actually do is what I'm getting at. Well, why would I be compelled to use it? It sounds like it gives us some additional functionality regarding querying the, the health of some services. And I get that it doesn't give you the health of all the services yet, but it gives you a consistent interface to solving that problem is one of the things I'm hearing it does. Chris, you mentioned it does a bunch more. What bunch more does it do? Well, okay. So the reason we got here is because we needed to know when each device was ready. Are we spent? Sorry device. Each service was ready. So we can have a device ready state. But this does more than telling you if it's ready. There's a, an error state. There's a started state. There's a stopped state for states that are included in this. That are not used right now and may or may not be used in the future. Well, wait a minute. Let's, let's just stop there for just one second. So in the absence of anything right now, right? We don't have anything that we can rely on other than the fact that the Dacia says everything's good to know whether everything's good. And as services are running, nobody guarantees they're not going to run out of resource. They're not going to crash and burn. They're not going to break. So periodically a super hypervisor could go and say, are you ping me every, every minute? Are you still alive? If not, I'll try to restart you. So you're saying it offers that additional functionality. And yes, why would anybody be using something that doesn't exist today? That makes sense. So what else? Functionality. No, I understand that, but it gives you an interface to accomplish that functionality. It doesn't. It doesn't. No. Oh. Interesting. So even though it has all of these additional, like you're down versus you were started versus you haven't even started yet, it doesn't give you the ability to query that information. Okay. I misunderstood what you said there. It doesn't give you the ability to query the, the readiness state, but not the other states as it's written right now. Okay. Or is it, it would be nice if it did. And I find that it's, it would be nice if it did. And I find it a serious. There's, there's methods for each of the, to query each of the states. So you can, you can. You know, he's alive. Hold on. Well, let us, let us step back and look at this in a little bit different perspective. This sounds like functionality. That would be beneficial to my craft core. Are we all in agreement on that? I don't know. That's part of my problem with it. I don't know. And, and so what I'm getting at is that. I'm not even here. I'm not, I'm not, I haven't gotten into core of that deeply except for the first couple of weeks and I looked at it and it looked pretty. You know, it's been, it's a hodge podge, but it's okay. It's, it's, it's pretty good. So, I don't know. That's part of my problem with it. I don't know. Okay. And, and so what I'm getting at is that. So, um, you know, what you're saying is that there's some functionality that could be exposed here that would give us the ability to have a hypervisor periodically check on the health of the overall system. And this accomplishes that. And maybe it's not completely done, but it's a step in that direction. And so being naive, I'm saying gee, you would think that would be of benefit to my craft core to be able to know that service blah went down. The thing that I heard so far that's a little disconcerting is obviously it's in a loop, which it's probably off in a thread. And yeah, it could be event driven where it just is told to wake up with a one shot or whatever, repeating timer every 30 seconds or every minute. But if it's giving us an interface into the services to in the future, be able to query them and determine their health. That would seem beneficial to me is all I'm saying. I don't know enough about right now. I'm not telling you health. It checks if it's a, there's a ready check and there's an alive check. So maybe I don't know, but those are the two checks that are currently in this class or yeah, in the absence of an alive response means you're not healthy. Right. Yeah. Maybe I, you know, I'm, I'm a little different being alive and ready. Right. Okay. So it seems to me that this is running and responding and raising services. I'm not ready to do it full functionality. Okay. I mean, there's more statuses too. There's going to be, you know, I'm going down or I'm going to critically low resource level or whatever. So, you know, a stake in the ground that could be expanded to handle all of our needs moving forward with would not be bad. We mentioned the audio service crashes periodically. Be sure it'd be good to know if the audio service was down or maybe take some appropriate, you know, corrective action, but I'm confused as to Chris, you're not in favor of this poll request for some reason. I'm guessing by reading between the lines. So my question to you would be why. So the reason being that a implements a bunch of stuff that may or may not be used is one reason. Another reason is we've talked about having a service. Some of these things. And we'll, we'll just duplicate whatever that service does. You know, when it's right. Well, it recludes from having to write that service. I don't know about that. But. We haven't really got the service and what would we do? So we don't know. Okay. Well, here's what I'd like to do then. I think, I think we can resolve this with some documentation. So, if it's not obvious what this thing does, then it clearly needs documentation. So I'd like to ask the implementers to write up a brief description of the architecture of the system, the motivation for implementing it the way it is implemented, how it is being used currently and what the expected roadmap is for how it will be used in the future, because it does look like it's a partial implementation. And not complete implementation.  Like three, four sentences at most of what you'd like to see in this supervisor, hypervisor capacity, you know, that we've been talking about. Because I know we haven't spec'd it out yet. It's just an idea. And I think we can agree that it's a good idea. But, you know, I'd like to get from you your top, you know, high level requirements as to what the capabilities need to be. And then we can share those and we can see if, you know, if that is something, if that's a destination we can get to, you know, starting with, you know, with this PR. Okay. I can do that. Awesome. Yes. What do you think about the reasonableness of my request to the authors of this PR? Yeah. Yeah. I think that'll be. Excellent. Fine. I think that, you know, in the future, I think this is the kind of stuff I'd like to, you know, well, this goes back to the discussion we had yesterday of, you know, not wanting to slow down innovation, but also, you know, when it gets to a certain point and it's going to become real, we do need to, you know, fully understand what we're getting into. So I think, you know, sometimes you just have to go down the road to see where it goes. I mean, you know, this looks like one of those cases and let's see if it's, you know, if it is going to meet our needs on the long term and, or, you know, and maybe it's, you know, maybe it's a little of both, right? Maybe, you know, it sounds like there, there was a group out there at least that is using some capabilities that we don't currently need. And maybe this serves, you know, their purposes and that might, you know, be a good enough justification for including it if it's not, you know, gumming up the works in some other way. So, yeah. All right. So now let's talk about the process for, you know, trying to regularize this and make it, you know, less ad hoc. Ken has proposed that we meet on a monthly basis to review the PRs. I know that Chris Gisling goes through the PRs on a, you know, I know that Chris Gisling goes through the PRs on a fairly regular basis, right? Like almost a continual basis, it seems to me. So, so how do, so what do we actually need here? What is, what is it that we're missing? Because it doesn't seem currently that there are more PRs than Giz can keep up with, but maybe that's just my perception. I don't know. So in my mind, there's, there's different types of PRs, right? Like if it's a bug fixed PR that just is a few lines of code, we don't need a bunch of people staring at that and, and dissecting it probably gets them is more than capable of, you know, reviewing something like that or either I am or whoever, right? I don't think we need a big meeting for that. I think it's these types of PRs, which are bigger changes or functional changes or something like that that need more attention than maybe just one person looking at it. Whether that be guys or me or anybody else, you know, because we want to make sure that bigger PRs like this are, like we said, following whatever direction we want to go in. So I think maybe before we say, we should probably, you know, categorize them in some way. And maybe we, maybe we can even use the PR system to do that categorization, right? And we already have labels on some of these, you know, this label as a bug, for example, you know, I, you know, I'll look at some of them depending on what the bug is, if it's something I know about that, you know, guess does a lot of reviewing these and, and merging them without any of my input. And I don't, that doesn't bother, you know, so, but, you know, if it's something like this, then I think we market differently and it goes different brands. And also as a counter to the monthly meeting, you know, I was wondering if this was one of those, if it would have made sense to, for me and Gess and Ken to carve out, I don't know, a half a day on Monday or a half a day on Friday or a whole day on Friday or Monday or whatever to go, you know, to dedicate to going through these. So at least on a weekly basis, you know, we're going through what's there and if people have responded. So it's pretty regular. And then if there's something that comes out of those reviews, you know, that day that requires discussion, then it comes up in this meeting. That's just an alternate solution that I was thinking of. Yeah, I guess it depends on how frequently these issues are coming up. I mean, it could just be that we raise these issues in this discussion and we decide whether, you know, we can make a decision quickly in one of these meetings or whether we should, you know, make a dedicated meeting for just that particular full request. And, you know, how much, how much of our resources, you know, we need to dedicate to it. Like, you know, does this impact something that's on our roadmap or conflict with something that's on our roadmap or partially implement something that's on our roadmap, you know, that kind of thing, you know, and we need to have a more in-depth discussion. Then, you know, if they're not coming in at that rapid rate, then maybe we should make them one-offs. I do like your suggestion of, you know, getting to it within a week. I think that's a lot more responsive and I feel a lot better about that. But, you know, I guess is seeing these all the time, maybe, you know, we could just carve out a small part of the meeting to, you know, to just note to those and decide whether they're, you know, controversial in any way.  You know, he's already mentioned that, you know, if he thinks it's something that's more than just a few line change, he's like, hey, he pings me, he's like, hey, look at this. Maybe that, we should continue, you know, can get us to be the first line of defense and if he sees a PR that looks like something that, you know, needs a little further scrutiny that he would usually give, then, you know, and maybe we go from there. Yeah, I mean, I'd like to get involved in the process before it goes too far down the road though, because this has been going on for, I don't know how long they've been working on this, but probably about a month at least. And I think it would have been good, like all these concerns that have been raised now could have been raised at the initial outset, right? I think, because, you know, I was watching some of those discussions and, you know, if I don't have, you know, the same knowledge of the code base and, you know, where we are right now is you, Chris, but, you know, what I saw was exciting to me. I'm like, oh, hey, great, they're addressing a thing that's going to, you know, make it easier for us to do this thing that we already know we want to do down the road. So from my point of view, I, you know, I looked at it as, oh, hey, they're, you know, this is going to help us out. But I understand that, you know, a finer level of understanding of, you know, the details here. And so, you know, maybe that's a discussion that rather than, you know, passively hoping that we, you know, look at it and take part in that, you know, if it looks like it's going to be something that's, you know, somewhat major, you know, we highlight it explicitly at one of these meetings and then take it offline if we need to. Does that make any sense? Yeah, it does. And, you know, part of the reason, you know, something else would be worth discussing is part of the reason I hadn't looked at this until now, because I was busy with doing other things and I never carved the time out to do it. You know, guys kind of prodded me along and I was like, oh, I should probably take a look at this. And that's kind of what prompted all this discussion. So I was wondering if there was something we can, like the guy said, like to me, you know, I could just carve out some time every, every week to make sure I get to some of these that need attention rather than, you know, trying to wait for some break in my, you know, the work I'm doing to remember to look at them. Well, yeah, it might not even be at the level of a PR. Like some, I think some of this started, you know, in the Mattermost chat channel and, you know, things we've discussed there and other places, right? Not just through the PR. I don't even remember them. Maybe it was going to be pointed out better too. You know, even if this one in particular didn't like, you know, they could in the future, right? And so that's, you know, the earliest that we can detect something that we might have strong opinions about or that are, you know, that might be a major level change. And the earlier we can say, oh, well, you know what, we haven't actually laid out to the community what our plans are in this particular regard, but let's just take, you know, a half an hour and sketch out what we're thinking and then, you know, make sure we get that out there so that, you know, they can be considering that, you know, as soon as possible. Okay. So the concrete action item result of this is Chris wants to dedicate a particular, you know, time in the week to, sorry, Chris Bayer wants to take up, you know, dedicate some time in the week to, to just reviewing these sorts of issues. That's great.  Yeah. Do we need to have a... Well, once I go into history, I don't think it'll be time-wise to... Yeah. Well, and so that's another question. So there's two more questions. One, do we need to, you know, revisit Ken's idea of a periodic, like whole group that reviews these things, or should we continue to do that on an ad hoc basis, but just try to get involved earlier from now on? What do you guys think? I like getting involved earlier. Chris, what percentage of PR do you think require this sort of attention that we, I mean, how often do you think we have a PR of this magnitude that's worth this kind of discussion? I'd say it's a small proportion of overall, but then, you know, having a quick look back through, you know, the open PRs that go back to 2017. Yeah, early 2017.  Already exists. We just need to actually engage and review and rebase it and get it ready for the latest call or enough of the stuff. So, like, there's real functionality in there that we just haven't had time to get to. Okay, so that was my second question was, how big is the backlog? And I guess it's about three years long, at least. So that seems like a great motivation for having a regular meeting and trying to get through that stuff.  So, you know, because, you know, well, I guess in all of these cases, we're assuming responsibility for these things, but we may potentially be putting off community members who would be, you know... Yeah, that's the concern is it's demotivating people we should be motivating. Yeah, there's like 30 of these out here. Okay. Right now. Great. Well, it sounds like if we tackle one a week, we'd get done with them in less than a year. Yeah, I think... So there's 30 open bull requests in Minecraft Core, but as we've discussed, we have quite a number of repos. And so, you know, I think we could then cycle through in 10 passes and, you know, a number of other repositories to look at what exists in there. I think we've got a few. Okay. Well, Chris, well, I'm not sure if the right way to approach this is. I mean, it'd be great if somebody could take point on prioritizing these in terms of, you know, what your thoughts are regarding, like, the controversy level of it, the... Useful man.  Which is not the only platform that our software runs on, but certainly the impacts, you know, our internal priority in terms of, you know, we wanted to use it for the Mark II, for example. So, you know, would it make sense for GEDS, for example, to take a stab at these? Or does everybody want to take a, you know, take a gander through and just kind of, you know, highlight some that they think are important or interesting to look at? And we just create a queue of these things and go through, you know, with, you know, put a box around how much time we're spending on it because we need to, you know, constrain that, I think. But maybe spend a little bit more time, especially around issues that are central to getting the Mark II out the door, right? So, for example, having multiple, you know, wake words is very interesting, but it's not critical to getting the Mark II out the door, right? So finding the right balance, you know, of that, I think will be important. But there are, you know, there are very well maybe things in there that will assist us in, you know, getting to a more stable and shippable product. So, you know, likely not, I expect most of them will be, will be interesting and fun and useful functionality, but not really required functionality. But we should take a look. We should at least know. Yeah, I wonder if the three-year-old ones even still apply, right? Some of these things that are really old, I mean, maybe they've been fixed another way, or they're, you know, you know, or who knows. Well, some of the code has been stable since then, so they could still apply, right? I try and close the ones that no longer, like I have a pay-giver now again, and I try and close the ones that really don't apply anymore.  And so if we move to the plug-in system, then we can close half a dozen of those. There's a few language ones, which I should check in again because that might now be lingua franca. But yeah, the others have probably more, they've probably fit more into the, like, you know, features that are not critical to Mark II, but will be interesting. Okay. Mostly. All right, well, since I expect you've got the best handle on these things, why don't you come up with a plan? Tell us how much you'd handle this. We can discuss that as well. That's what I call management. Yeah, so I think one of the big things that I've been hearing is that we need to improve the tagging system for PRs and, like, the categorization system and the way that we do that through tags and that, you know, we have bug fixes and features, essentially, and then the bug fixes are, like, quick things versus complex and features that are probably just roadmap versus proposals or, like, you know, something else. And then I don't want to go too deep into a, you know, a five-point rating scale of importance, but, like, you know, maybe something that's, like, a flag that's, like, yeah, we probably want to look at this quickly so that this can fit with the rest of them. So maybe I'll have a look at that and go through the backlog and categorize everything based on those. Yeah, I mean, that's an interesting idea. If there was a way that I could just scan through PRs and go, oh, hey, this is something I should probably look at. You know, by looking at a tag or something, like, then, you know, that would certainly be helpful to me. And we should prioritize bug fixes over features, right? Unless the feature is critical. Yeah. All right, yeah, so I'll do that. Okay, great. Okay, so that was two issues. We're at 52 minutes. Did we have a, well, I guess we started a bit late, so maybe 42 minutes. What, what was our other issue that we wanted to talk about? Was there another one? I thought there were four. Do you have to use ParkCharm? No. I, I, I got a free license, you know, like a temporary license. So I thought about checking it out. Is it worth it? Well, I was just going to say they just added a PR function. I can, I can look at and view and come in and stuff on PRs right in my editor. And compare it. There's some pretty cool stuff they're adding to it. I think it's worth it.  Because it does so much. Yeah. I also have a professional edition, which is whatever. Yeah. Whatever it is. Oh, I don't know if this is one of them, but do we have a rule set of wax that we want to kind of focus on a little bit in the past? And I'm now starting out there. Yeah. About the agenda. Terrible. You have a video rule. So black. Black is black. There's no, there's no configuring black. Yeah. Yeah. You just, that's part of the reason we want to use it is it's opinionated. And there's not a lot of things you can, you can change. So yeah, as far as that goes. Yeah. as far as pilot goes, that is maybe an ongoing discussion. Like I've been running pilot on a bunch of things I've had and I've got a running pilot RC file or config file where I've configured a couple of things that didn't make like black did one thing but pilot expected another. So I had to ignore that because you know, you were just, little things like that and as we noticed though, we can keep this and you know, pilot RC, probably we can put it in the DevOps repository or something. So everybody can download it and use it.  So we could also discuss and we don't do it right now, you know, what is acceptable from a linting standpoint you know, some places I've worked before said, you know, as long as you have a nine out of 10, it's okay. But you know, but if you have nine out of 10, it could be that you're, you know, what did you decide not to fix?   The nine out of 10 and places where I've been is because with non-strongly typed languages, it's a necessity. There are objects you'll pass around that are anonymous and pilot won't be able to catch it. So an order just won't cleanly compile. Code works fine. And it usually happens in factories that produce polymorphic output. So yeah. So pilot will check for that though. Well, it's not capable of catching all cases, which is why people that are adamant about pilot realize that nine out of 10 is probably gonna be the best you're gonna be able to get. I'm not a big fan of linting in general, but yeah, for Python code base, that's just me. I'm sorry, Ken, I didn't hear you. You're not a big fan of what? Linting in typeless languages like Python anyway. It makes people write code for the purposes of cleanliness at the expense of efficiency in certain cases. Well, it sounds like we don't have some clear rules to pass on to the community here. So I think we should work on that. Yeah, I think with black, I think it's easy. Just run black on your code. That's pretty cut and dry, but with pylint, if we wanna talk more about that, we certainly can and what our expectations are. Once we know what they are, I can code them into CI and it's just what it is. But we like to communicate them before the hands of people, they want to link their code before they submit their PR, they could do that too. Oh yeah, that would be my expectation. And I think that we should give the community and ourselves probably a good three months of heads up before we implement any kind of strict policy based on pylint or black or whatever, in terms of integrating it into the CI system. Yeah, and right now, I've been putting comments in PRs, for example, like I know the last couple of left on, I was like, oh, this probably wouldn't pass the pylint test. You know, just kind of hints towards it. And I'll ask to do black if it doesn't look like it's blacked. So that's that. Can you pay your pylint file? Yeah, I'll put it in the DevOps repository and let y'all know when it's there, so you can all download it and use it. Yeah, we'll give it a try. So we need to take a JIRA ticket to make concrete our our linting requirements for the CI system. And then, you know, we need to probably take some sub issues in terms of rolling that out to the community and, you know, we're reviewing it internally and making sure we all agree on that process and that sort of thing. Okay, congratulations. You snuck in an extra issue. All right. So that's it. Actually, I went back and reviewed our notes. We don't have any other topics on the agenda. So unless there's any other surprises, people want to bring up, we can call it for today and pick it up on Monday. And next week we're on Monday, Wednesday and Friday, normal time, right? Correct. Okay, good. And again, there's a little bit of a distinction between the meetings. Can we just go over that real quick? Monday is different than Wednesday and Friday? Yeah, I think Monday, we're generally trying to, before the meeting, everyone should go through their JIRA tickets, fix up the status on them, make sure that there are any new tickets that address the work you expect to do for the rest of the week. And basically, so Monday is kind of our day to review and plan for the work that we're doing for the next week. Review the work from the last week, make sure you've closed out the proper tickets or updated them accordingly, and then create any new tickets for the work that you're going to be doing for the rest of the week. And then we'll have the meeting, we can review that. And then Wednesday and Friday are about just checking in on issues like this, things that come up during the week or making sure that we're just keeping the communication channel open and getting problems solved. All right, so basically Monday is the day you should come to the meeting prepared with your tickets up to date. Correct. Got it. All right.  But hey, you know, there's only four of us, three, four or five of us, whatever. We should be able to do this. So, yeah, so that's it. All right, then everybody have a great weekend and we'll be talking to you on Monday. All right.


Force reconnaissance marines of the 31st Marine Expeditionary Unit receive a tour of the U.S. Naval Transport Ship, Dahl, in preparation for upcoming training in vessel, board, search and seizure operations. The purpose of the tour is to orientate the marines with the differences between civilian vessels, and the naval ships the marines are used to training on. The naval ships we use are actually oriented differently. They're set up as warships, which gives them a slightly different orientation than to the civilian transport ships. However, most of the operations that we do happen aboard merchant ships, which are not military vessels. The tour focused on key areas of the ship, like the engine room, steering controls, fire control systems, and the bridge. Marine Sergeant Paul Robbins, Jr., White Beach, Oakland.


With the growing demand for conducting systematic reviews, tools such as Covidence are designed to streamline the process, thus alleviating some of the workload and making collaboration much more efficient. In this video, you'll learn about Covidence, how to set up a free account through the Welch Library website, and how it can help you and your team conduct a systematic review. As a Hopkins student, faculty, or staff member, you can take advantage of the institution-wide subscription that Hopkins provides freely to all affiliates. To open an account, start from the Welch Medical Library's homepage. Click on the Covidence link on the left-hand side of the screen in the Research Tools heading. As a new user, follow the instructions listed in the notes section of the page. First, click on the sign-up link and fill in the registration form. Then, go to the second step and request an invitation to join the JHU Welch Medical Library account. Once you receive the email from Covidence, click on the link in the email to accept the request, and you'll be ready to get started. You can access your account at any time, either from the library's Covidence link, or you can log in directly from the Covidence website using the login located on the top of the page. To get started, you'll need to click on the Start a New Review button. Give the review a name and then click the button for JHU Welch Medical Library. When you're ready, click on the Create Review button. Now you can go to the project settings to invite reviewers to your team and customize the screening roles. Under the Hopkins institutional subscription, you're allowed an unlimited number of reviewers, and they can be from any institution, not just Hopkins. Once you complete your search, you can import the citations from citation management tools such as EndNote, Zotero, RefWorks, and Mendeley in RIS text format and begin screening. Let me show you briefly what the screening process looks like in Covidence. If I go into the title abstract screening page for my review, you'll see all of the items that need to be screened, including the citation information and abstract when available for each. From here, you can then vote on whether to move the item onto the next round of screening or exclude it from the review by clicking the Yes or No buttons on the right-hand side of each item. There's also a Maybe button if you're not sure whether to include or exclude an item. Covidence supports single and dual screening. If you're screening with more than one person, after you vote on an item, Covidence will automatically move it to the Awaiting Other Reviewer category until another person reviews it. If the second person votes differently on an item, Covidence moves the item to the Resolves Conflicts category. You can also specify screening permissions for each reviewer, so if you only want the more experienced members on your team resolving conflicts, you can set the screening permissions accordingly. With the Settings button on your project's homepage, you can set up features that will make your screening even more seamless. For example, clicking on the Criteria and Exclusions Reasons section allows you to add your inclusion and exclusion criteria. Just below this section, you can click on Manage Highlights to add inclusion and exclusion terms that will be highlighted as you review your citations. Now if I go back to the title Abstract Screening, I can click on Show Criteria and the Inclusion Exclusion Criteria will display while I screen. Also, if I click the Show Highlights button, the terms that I set up with the Manage Highlights box will appear in the records. Inclusion Criteria will show up in green and Exclusion Criteria will show up in red. Once you've completed the title Abstract Screening phase, Covidence automatically moves the items with a yes and maybe vote to the Full Text Screening phase. Once in the Full Text Screening section, you can upload multiple PDFs at the same time using the bulk upload PDFs button. Using this feature automatically attaches the Full Text files to the corresponding items in Covidence. This is key for facilitating the Full Text Screening process among your team members, especially those located at other institutions. You'll notice that the Full Text Screening process is very similar to the title Abstract Screening process, but this time when you select No to exclude a record, Covidence prompts you to select an exclusion reason from a drop-down menu that you customize. As your team is working in Covidence, it's automatically populating an editable Prisma Flow diagram that you can add to your final publication. To access this diagram, click on the Prisma link on the upper right-hand side of the screen. Notice that Covidence even formats the Full Text Review exclusion reasons in the Prisma Flow diagram. Once the Full Text Screening phase is complete, you have the option to use Covidence's data extraction forms. You'll want to customize your data extraction forms at the beginning of your project to ensure all records are extracted with the same criteria. You may find that Covidence's data extraction forms are primarily geared for systematic reviews of interventions and do not meet the needs of your project. At any point in the process, however, you can export your files and use another tool for data extraction. To learn more about using Covidence or to keep current of new updates, Covidence has an easy-to-use help guide that they call their knowledge base. Access this help guide by selecting the link for support from the main page or the question mark from inside your account. As you can see, Covidence enables multiple reviewers to work more efficiently through some of the most labor-intensive steps of a systematic review, such as screening records and extracting data. Set up a free account through the Welch Library and you'll be ready to start using this powerful tool. For more information about Covidence, visit the Get Help section of our website. Reach out to the Welch Service Center through chat, email, or phone or contact your informationist directly.


Next speaker is Daniel Moghimi. I believe actually this work is going to be presented next week at ACM CCS in London, really top tier academic conference for security. So I really like it when academic work comes out to the hacker community, and you're all going to get a preview of that. This is a really cool attack. Similar on data side channels in processors. So take it away. Thanks for the intro. And thanks for everybody attending my talk. Today we're going to talk about the Zambilode attack. Zambilode is a CPU attack that can actually leak data from other processes, contact switches. Maybe you can use it to do privilege escalation. And this is a joint work with a bunch of people from four different universities and institution. So a little bit about me. My name is Daniel Moghimi. I've been doing some security work since 2010. I've been doing a PhD since 2017 on a slightly different topic since then, like micro-architectural security side channels and applying them to breaking crypto and different things. So and this is my first talk in a hacker con. So it's going to be exciting. You'll see. So before talking about our attack, let's talk about cache attacks, which is like a basic that we use in our attack in leaking data from CPUs. So what are cache attacks? CPU has to use cache to fill the speed gap between the CPU and the DRAM. In a modern computer system, we have a hierarchy of memories, like CPU register, cache, DRAM. And in the bottom, there are other things like peripherals, disks. When we get to the top of this pyramid, we have more expensive memory that you cannot have a lot of them, but they are much faster. So how do we use this cache? We try to access something from the DRAM. We load this, the CPU put it in the cache, and then we get the data to the CPU. This is slow because the CPU has got through a very long path. It take maybe 200 or 300 cycles, so we don't want that. The next time the CPU wants to access this, we're going to get the cache here because it has already been in a faster memory that is very close to the CPU. So the second time, this is going to be much faster. But the great thing about cache is it can actually let you to do some side-channel attacks. There are lots of different side-channel attacks out there since 15 years ago. But one interesting attack is called flush and reload. Flush and reload is one of the most simplistic cache attacks that can be used when we have a shared memory with a victim. Assuming we have two persons sharing the same hardware attacker and victim, let's say on a cloud environment or a browser. So what we do is, as an attacker, we flush this piece of memory that some other people loaded. And then we wait a little bit, and then we see if the victim is going to load that. If victim load that piece of memory, the next memory is going to be in the cache. And we, as an attacker, we try to reload that memory again. Then we reload that memory the next time. We're going to measure the time to see if it's loaded fast or slow. If it's fast, we know that it's a cache. If it's slow, we know that it's a cache. By this simple attack, the attacker can know about the access pattern of a victim. So we can, for instance, use this to see if a cryptography implementation can leak some secrets or other interesting things that we can do. For instance, we can profile users' behavior activity. But so far, we don't leak any data. We just learn some side channel information about what somebody might do on the same system. Then in 2018, we heard about Meltdown attack, or our CPU is on fire. We need to just redo everything. So how Meltdown attack works. If anybody, I think many people have program in C, if I try to execute this code, I'm going to basically get an exception, because I'm trying to access a kernel memory from user space. If I try to execute this code, I will get a segmentation fault. So I cannot print the value of the kernel. Can I? No. But with Meltdown attack, instead of trying to print that value, we're going to actually use some of the CPU features to actually leak that data outside of the CPU. And we combine that with a flush and reload attack. So how are we going to do that? Here, we have a CPU. The CPU has some registers there. Yeah.  That CPU has many cache lines. And then we have a virtual address space that is assigned to our process as an attacker. So what we're going to do, we're going to allocate some memory. And this memory that we're going to allocate, we're going to call it oracle. And this will be assigned some cache line. This memory will be mapped to some cache line. Then we're going to try to, again, execute this code. When we execute this code, well, we will get a fault. We will get an exception. But what is interesting in, there is something called a transient domain where CPU executes things out of order without checking any validation or seeing if they are correct. And later on, it's going to just flush all of them. So in this transient domain, this secret that we try to access, which is a password, for instance, in kernel, is going to be actually loaded to some macro-architectural registers. And these registers are in the CPU. They are not architectural registers. It's not available to the software yet. And then when this happens, then we're going to execute another code. We call this code a gadget. The job of this gadget is when it's executed in the transient domain, it's going to encode that secret from the transient domain to some permanent architectural behavior. And here, when we execute this oracle, this secret is going to be encoded to one of these cache lines. Then the CPU goes ahead and like, OK, this was a fault. We need to flush everything and send the signal to the OS that this was an exception. When the CPU flush everything, that accessed cache line is going to be there. And that's a footprint that we can use later on to actually leak the secret. And basically, we use a flush and reload attack on each of these cache lines. We know that none of these are fast, so the secret is not there. But when we reach here, we know that, OK, this is fast. What is the index of that cache line? The index is equivalent to the secret. And that's how I'm all down attack board. So this was all background. This wasn't a zombie load attack. This was all previous work. Then we're going to ask some question. So we did them all down attack. We leaked some secret from the kernel. Good. But now there are protection. There is a KPTI protection that isolates the memory so we don't have access to the kernel. And more recent CPUs, like, for instance, Coffee Lake, this issue has been even mitigated in the architecture. But can we still do attack? Can we still leak data? What if we try different things? Like, trying to access, trying to execute other load operations that cause exception. Or do we even check where the data come from? In the previous slide, we just said, OK, the data came from memory. But data can travel through lots of different buffers and cache inside the CPU. So we looked closer to that. And we have, yes, the zombie load attack. So how does zombie load work? To discuss how does zombie load work, I want to explain how does a simple memory load operation on a CPU these days work, actually, on an Intel CPU. Then we execute a memory operation. Let's say I'm reading 8 bytes of memory by providing an address to the CPU. I use the virtual addresses. But the CPU has to read the memory from physical, using a physical address that actually maps the memory address to the actual bytes of data. So the CPU is going to translate this address using something called TLB. TLB is like a cache that holds previous translation, like the most recent translations. And TLB, if it doesn't have the information, is going to ask the page mishandler. And page mishandler is going to ask OSHA to a page work and give me this page table entry. What is a page table entry? This is the result of this translation, which includes a physical page number that can actually help the CPU to access the actual data. And a bunch of metadata there to explain what kind of memory we are trying to access. For instance, that PBIT is the present, being tells us, OK, the memory is backed by DRAM. It's not just metadata. And it's not on the disk, for instance. Or that USPID is the supervisor. That's how we know this is a kernel address. And that's how a CPU through an exception. Because if that bit is set and we don't have the permission, we're going to get an exception. So we know about this now. But what is cache? What are the different elements in the CPU that can leak data? So we mentioned that there is a cache that's actually helped the speed of the programs or memory accesses. But there is not only one level of cache. CPU nowadays use multiple levels of cache. In particular, Intel CPU use three layers of cache, level one, level two, and level three. Which level one and level two are inside the core. And level three is shared by all the cores on a CPU. But that's not the only element that works as a cache inside the core. There is something called line fill buffer. What is line fill buffer? Line fill buffer actually helps the level one cache to be more efficient, to not be a blocking cache. How does line fill buffer do that? We try to access a memory. We try to execute that instruction there. And when the data doesn't exist in the cache, the CPU is going to allocate an entry called one of the entries in the line fill buffer. This entry is going to hold 64 bytes of buffer, which is size of a cache line. And it's going to get the data from the next levels of the memory in the hierarchy, from the DRAM or from the L3. The good thing about line fill buffer is this data doesn't have to be filled inside the entire level one decache. The data can be just forward when we have enough data available to service that memory. So we're going to just get the data, and also the level one cache also eventually will be filled. But what is the problem with line fill buffer? The problem with line fill buffer is it acts like a bad memory allocator. When we try to, when we retire this instruction and we are done with executing this load operation, the line fill buffer is going to be actually deallocated. But this deallocation is just marking this as deallocated. So the actual data that's marked with x from a user is going to actually be there. But this is just deallocated. It's going to be marked by the CPU. Then some malicious person comes and say, OK, I want to execute a memory load operation. This malicious person, this zombie load, this is going to execute some memory operation that's going to get a fault. And before doing that, we're going to groom the architecture in a state that we don't have a cache for this malicious memory load. And then when we do that, we're going to be assigned some entry in the line fill buffer. Line fill buffer doesn't have so many entries. It only has 10 entries. So we have a high chance that the same entry that a victim has used is going to be assigned to us. And this is shared between the two hyper threads when you do a context to it. This is shared. And interestingly, on Intel CPUs, when we get a fault, the first thing the CPU does is this data is going to be forwarded here to this faulty operation. And we can use a meltdown style of flush and reload attack to actually leak this data. So by doing this, we can actually leak data from other processes, other contexts. So even if later on this data is updated, for instance, with zeros because now CPUs has protection, so it's going to update this data. So we cannot actually leak the kernel data. It doesn't matter because we have already leaked the data that was a stale inside the line fill buffer from previous operations. So Zambilot has multiple variants. Another variance that I would like to mention here is variant three, which instead of a supervisor fault, it uses actually the access bit, which is not the architectural fault, but it actually performs a fault inside the CPU. So how does this handle? So the access bit is bits inside the page table entry that actually allows the CPU and the OS to have some sort of contract on pages that are allocated. The CPU can use the access bit to actually tell the OS that this memory has been accessed for once. And the OS can actually tell the CPU that this memory is just allocated, so the access bit is clear. But the interesting thing is if the clear the access bit, if the OS clears the access bit, then CPU wants to access the memory for the first time. It's going to get an internal microcode access. And microcode access is just an internal handler inside the CPU that operates, that performs some of the more advanced, more complex operations using an internal handler instead of having a logic to handle that operation. So with the microcode access, we also get a similar behavior, so we can do a meltdown attack. Meltdown is a style of attack, which we call it zombie load. It can leak data from other processes and contexts. So what is the difference of zombie load to compare to some previous meltdown style of attack? So meltdown used the entire visual address to leak exactly the data that we know where it is. And there is another attack called foreshadow, which actually used the physical address mappings. Basically, it abuses that OS or a hypervisor can actually change the mapping and link data from L1 data cache. And there was also another attack coming the same time with zombie load called follow-out, which actually uses some address aliasing. So we have control over the last 12 bits. But zombie load, we only have control to the last six bytes of address. So we can only decide which byte of data to leak, which makes it harder to exploit. We only leak some random value from the line field buffer. But there are still some interesting things that we can do with this. We can do some cross process attack, cross VM attack, and also attack Intel's trusted execution environment. So how did we do that? We came up with some sort of encoding and error correction to actually get the data we want instead of some random noisy data. Let's assuming I want to leak some secret. I call it target secret. And it has some bytes of data. It's the AS key, for instance. If I try to leak this memory using the zombie load attack, I'm going to get three candidates because I may also leak other entries from a line field buffer. So what I'm going to do is then I'm going to shift this window a little bit further, let's say for four bits, and then leak another three candidates, and then do the same again for another three candidates, or two candidates. And if I check, I see that those values that are yellow, they actually match to each other. The nibbles of those values match to each other. And by doing that, I can figure out, OK, which bytes of this leak data belong to the same cache line. And I can extract that and then get rid of the rest because the rest don't match properly to anything interesting. Or I can also do other interesting stuff after I leak this cache byte. I can, for instance, check if I'm leaking something ASCII, for instance, password. I just care about bytes that represent ASCII. Or if I want to leak a cryptography key, I need to know that key materials are uniformly random. Using this post-processing, we can actually leak secrets. Here, I have a demo using Zombilio to actually leak the root hash password on a Linux machine. It takes some time here to go fast forward. So we can leak like 20 bytes of the root hash password like in one minute. So what are some other interesting things that we can do with it? In the research paper that we released, then there's going to be a more updated version of this next week due to some embargoes. In the research paper, we have some other attacks too. But one interesting that I want to mention is attacking Intel trusted execution environment. So Intel has this cool technology. It's a trusted execution environment that runs on the same CPU. And with SGs, we can assume that everything is malicious. The OS is malicious, the hypervisor is malicious. And the CPU is going to guarantee that nothing is going to leak outside of that module that we call it enclave to be leaked. But the good thing is for attackers, if we assume that way, then side channels can be much more powerful.  So we're going to use the Zomulo attack to actually leak register values from an Intel SGs enclave. How are we going to do that? Let's say I'm going to run some code that is executed inside an SGs enclave. And I know that after five instruction or some number of instruction, this register called LAX is going to hold some secret. We have a tool developed by one of the co-authors of this paper that can actually perform single stepping on SGs enclave. This tool can only do single stepping. We're not going to leak anything from the enclave because that's the security guarantee it has. But what we can do is we can actually put the architecture in a state that we are exactly after a certain instruction. After we do that, we're going to actually mark this page as non-executable.  We can at least control the page parameters. So we mark this page as non-executable. And when we try to execute this, we're going to get an exception. When we get an exception, we handle the exception as a malicious OS. And we try to do this again. If I keep trying to do this, I'm going to execute. I'm going to try to execute that calling instructions maybe so many times as much as I want with the same exact register values. And when I do that, I get lots of context switches. And with the help of those context switches, I'm going to make sure that the enclave process is going to always put those registers inside the memory. When these context switches happen, the register values are going to return to the memory and come back. And this forces the enclave to actually put those registers values inside the line feedweather. And then at the same time, I'm running the Zambula attack on another thread. And I'm going to leak the Intel S6 secure keys. So we just talked about attacks and breaking. Is there any solutions for these attacks? There are some shorter solutions that may or may not work, depend on the context. Intel suggests the instruction sequence card where W, that if it's executed, for instance, by the OS during context switch, it can actually fill all the buffers. So the next context, which could be a malicious process, would not get access to the same values inside the buffer. But for hyper-treading, there is not really any hardware solution. If you are using hyper-treading, the data can be leaked. There is no solution. If you are using Intel S6, you can actually verify if you are running the enclave on a hyper-tread or not using remote attestation. But you need to make sure that the attestation messages are verified properly. And the line-term solution, buy new CPUs, more money for Intel. And that's my talk. This is a poster for the ACM conference. If you want to check out the code or any more updates next week, that's the link to the website. I would be happy to take questions. All right, let's thank us. And we will do a Q&A outside in the beer garden.