Hello and welcome to the International Daily Roundup with People's Dispatch where we bring you some of the top stories from across the globe. Let's take a look at today's headlines. Greek workers' observed generals tried to protest labour reform proposals. Kierke of Fujimori seeks to annul votes as Pedro Castillo nears election with trade. Palestinians protest illegal evictions and settlements in the occupied territories. Keystone XL pipeline officially terminated following over a decade of struggle. Workers across Greece observed a general strike on June 10th to protest a proposed labour reform introduced by the ruling conservative new democracy party the reform will be voted on in parliament next week. The legislation will allow employers to extend the workday from 8 hours to 10 hours more over. Instead of paid overtime workers will be compensated with reduced hours or time off. The bill will also increase the legally permitted overtime to 150 hours per year. It also restricts the right to strike by ordering a minimum guaranteed service of 33% by public service providers. The bill will also abolish Sunday holidays in 31 industries. Employers will reportedly no longer be obligated to rehire employees after redundancies as long as they are able to justify it in court. The culture strike was issued by major trade unions including ADEDY, the All Workers Militant Front, civil servants and workers from sectors including media, healthcare, railways and mining all joined the strike. Public services including tax offices and transport services such as metro and trams remained closed. Ships also remained docked at the ports. Meanwhile, thousands of people held a protest rally in the city of Athens. Protesters then gathered outside the parliament building. Rallies and marches were also held in other cities including Thessaloniki and Perius. Thursday's general strike followed two national strikes organised by the GEP and ADEDY in May. Mass rallies were also held in several cities last week. Left wing candidate Pedro Castillo is poised to become Peru's next president in a landmark electoral victory as of 9 a.m. local time on June 10, 99.99% of the votes have been counted. Castillo from the Free Peru Party has won 50.2% of the votes. Bar right candidate Keiko Fujimori from the Popular Force Party has won 49.79% while the official result is yet to be announced Castillo has declared victory. Meanwhile Fujimori has initiated an appeal to annul the results of 802 polling stations alleging irregularities. This will be equivalent to around 200,000 votes. As reported by Kapsachi News, Fujimori's team will target areas in central and sub Peru where Castillo has received a large share of votes. The process will cost over 882,000 soles. Fujimori also raised unsubstantiated allegations of systematic fraud and irregularities on Monday. She has now claimed that she will accept the decision reached by the National Bureau of Elections and the OMPE. Fujimori supporters also flooded social media asking that the Armed Forces intervene. The Defence Ministry issued a statement saying that the Armed Forces was subordinate to constitutional power adding further. The Ministry reaffirmed its commitment to respect the citizens well expressed at the polls. Meanwhile, Castillo's supporters have continued to gather outside the party's headquarters in Lima. A mass mobilization is also expected on June 10th to mark his imminent victory. 51-year-old Castillo is a rural teacher and trade unionist. He has expressed support for rewriting the current neoliberal and exclusionary constitution. His platform also includes anti-neoliberal policies such as the naturalization of natural resources and key industries. In the meantime, Castillo has asked his supporters to remain calm and wait for the final announcement. The new President and Vice President will take office on July 28th. Palestinians held a demonstration outside a court in Jerusalem on June 10th. They had gathered in solidarity with the Salem, Ketan and Abu Naab families from Chalwan's Patnalhawa neighborhood. They are among the seven families who were handed eviction orders in 2020 so that Israeli settlers could take over their homes. The two families filed an appeal in the court on Thursday, however, as reported by Bafa News. The court has postponed the verdict until August. Meanwhile, Israeli forces attacked the protesters' gathered outside and detained at least three people. At least 87 standing eviction orders have been issued against Palestinian families in Patnalhawa. Local agency Selvaneck reported that the Israeli forces stormed houses in the neighborhood later in the day. The Jerusalem municipality has also issued demolition orders to Palestinians in the Al-Bastan neighborhood as per reports, families have been given 21 days to vacate their homes. Palestinians in the occupied West Bank are also fighting against the expansion of illegal Israeli settlements. Israeli settlers have started the construction of an illegal settlement outpost near the town of Patlehem. This is just days after over a hundred Palestinians were injured by Israeli forces during a protest in Bieta. They were protesting the setting up of mobile homes by Israeli settlers on the Jabal's Bay Mountain Israeli forces attacked Palestinians again during a protest in Nablus on June 8. Here is a video on the illegal settlement expansions and violence against Palestinians in the area. TC Energy has officially terminated the widely opposed Keystone XL Pipeline. This is a landmark victory for indigenous communities and activists who have been resisting the project for over a decade. The company announced the decision on June 9 after consulting its partner, the government of Alberta. US President Joe Biden had already revoked the federal permit to build the pipeline in January. Construction on a $9 billion project began in 2020 following years of legal challenges. The 1,210 mile pipeline would have stretched from the Canadian province of Alberta to the US state of Nebraska. It could have transported 830,000 barrels of tar sands oil per day. activists pointed out that producing this type of oil would emit more greenhouse gases. The sheer amount of oil being transported also increased chances of an environmental disaster. Moreover, it's true Nebraska would cut through the Okalala Aquifier. This serves as the groundwater source for millions of people in surrounding areas, indigenous communities in the North and South Dakota. Also states the pipeline's route would cross through ancestral lands and sacred sites. Moreover, oil companies tried to justify the project by claiming that it would create thousands of jobs. However, the US State Department estimated that the actual number of permanent jobs created would be close to 50. Activists are now calling for an intensified struggle against other pipeline projects, including Dakota Access. Over 100 people were also arrested in Minnesota this week while protesting another Canadian-owned pipeline, the Enbridge Line 3. And this is all we have for this episode of the International Daily Roundup Promotion Stories and Videos. Visit our website peoples.spice.org, subscribe to our YouTube channel and follow us on Facebook, Twitter and Instagram. Thank you for watching.


LHI has a variety of different customers that we offer services to. My responsibility is to review applicants that HR provides for me, interview them, and then potentially hire them on our team. The technical colleges really focus on specific skills that people need to be successful in whatever career path they choose. Whether they're going there for nursing or auto mechanics or business or marketing, they've really been able to specialize in what it is they want to become successfully. To me, going in and getting into a technical college and seeing that hands-on kind of approach where you're knowing what you're going to be doing right away rather than three years into a four-year college and then saying, oh, I don't like it, I would definitely recommend going or looking at what technical colleges have to offer.


Hello and welcome to the NPTEL course on an Introduction to Programming through C++. I am Abhiram Ranade and today's lecture is on classes and the reading material for this is chapter 18 of the textbook. So here are the main recommendations from the previous lectures. First use a struct to hold information related to each entity that your program deals with. Then define member functions corresponding to actions or operations associated with the entity. The main theme of this chapter is to take this idea further in the following sense. So the goal is to build something like a software component around a struct. Now software components are useful for building large software systems just as hardware components are useful for building large hardware systems. And a software component must be convenient to use and also safe exactly in the sense that hardware components are convenient and safe. So for example they should software components should help prevent programming errors. So we have been talking about this theme for some time now. So let us just clarify this a little bit more. So things that you buy from the market are packaged and made safe to use. Fridge, television are some of these things. So for example there is no danger of getting an electrical shock. A control panel is provided on the device. A user does not have to change the capacitor value somewhere to change the channels on a television. The analogous idea for software is that the make the functionality associated with a struct available to the user only through member functions. So this is kind of analogous of the control panel and do not allow the user to directly access the data members inside a struct just as a user is not allowed to touch the circuitry inside a television. And in some sense the user has no business looking inside. That is the attitude. That is the view that is taken. But the user does not want to know what is going on inside. Just to keep his or her headache low and I mean keep separation of concerns. The user has lots of other things to worry about. So another idea is that if you build a better fridge you often keep the control panel the same as the previous model. The user does not need to relearn how to use the new fridge. If you build a better version of the struct but if you keep the member functions signatures the same then the program that uses the struct does not have to change. So these are the kinds of things that member functions and this kind of discipline will allow us to accomplish. So the modern version of a struct can behave like a packaged component and the designer of the struct provides the member functions. Actually the designer of the struct can do lots of things. And for example if I have a ordinary variable lots of things sort of there are lots of standard operations that can be performed on variables. To begin with I may have to create that variable so there is the creation of the object. Then I may want to assign I may want to pass the object to a function and we want to pass the struct or object or whatever back from a function I want to return it as a result. And we know that when control leaves a scope the variables which have been created inside in the activation frame have to be destroyed. So the modern version of a struct allows you to customize these operations however you want. And that gives the designer a lot of freedom and the freedom can be used to do quite some imaginative things. Now in this course we are not going to talk about all these things at least not immediately. We are going to talk about just the creation in today's lecture we are going to say how the designer can decides what happens during creation. And the idea is that once structs are designed in this manner using them becomes convenient and less error prone. So we have been talking about all these things for some time now but in some sense they are going to come to fruition in this lecture. And structs which are endowed with such features are also called objects. So I have been using the term objects but the technical meaning is an object is something is a struct or it is a variable created from a struct but which can have all such features. So here is an outline of this lecture I am going to talk about something called constructors I am going to talk about operator overloading I am going to talk about access control then I am going to talk about classes and then I am going to talk about some special classes for graphics and input and output. So what have we discussed so far in this segment we have said that we would like to build safe and convenient software components. Safe means less likelihood of errors. Basically this means think through how the component is going to be used and provide a set of corresponding member functions. And we will see that we can even disallow direct access to members and the idea behind this is that usually such access is likely to be error grown. We want our objects to be convenient in the following sense that they make it easy to think about parts of the program. So member functions should provide a very clear interface and the users of the components should not worry about how the functionality is implemented. So the components should be designed so that they do not need to look inside. So there should be very nicely designed control panels so to say. And I should say that these are guidelines and this is how we would like software to be designed but sometimes it does not work that way and that is once in a while provided you have good reasons. So next we will discuss constructors but before that let us take a short break.


D- Development team Jorudan took some big swings and misses early on in the Super Nintendo lifespan. They made the role playing game GD Lean which was fairly impressive for the time for its scope and its story but it's absurdly grind heavy and it sure to play. They made the action platformer Zardian which has the feature of switching between 3 transforming mechs throughout each level but the game plays slowly and the user interface often gets in the way. Then they made Alien vs. Predator, the Super Nintendo version, not the arcade game, and uh, yeah, that was a slight disappointment. So keep those games in mind when you think of Musia, the classic Japanese tale of horror. And by that I mean, it has a few things going for it, but it's ultimately disappointing. And that's not unexpected, since this game was released in April of 1992. That was a time when just about every third party Super Nintendo game not made by Capcom and Konami looked and played rough around the edges. The first thing Musia has going for it is its title. The classic Japanese tale of horror signed me up for some of that. And yeah, to the game's credit, the settings and enemy design do look pretty cool. Musia deserves credit for paving away for later games that had horror settings, like Maju Uo, like the second level with these alien egg things everywhere. But that's all the horror is here, just a theme and a story, granted it is a pretty cool story of a beaten down soldier named Imoto who must descend into the abyss to rescue Shizuka, a maiden who holds the talisman that seals off the abyss from the rest of the world. The horror theme doesn't play into the gameplay or anything, this is just a regular old action platformer.  But there is a password system. You attack with your trusty pike, and there's power ups here and there that can upgrade it like adding a projectile. The A button does a spin attack, the catch being that you have to stand still to use it. B jumps, hold up and jump, and you'll do a floaty super jump, the X button does a clear screen attack, and interestingly the L and R buttons allow you to kinda carefully back away. I never really used this, but it's nice that it's there. Also you earn a new spell after defeating each boss, and it's typical stuff like fireballs and the like. As you can see, this gameplay is slowly. I get the feeling that they were going for a Castlevania vibe with the gameplay, but the control is just too stiff and your character moves too slowly, while the enemies around you are much quicker. In other words, this is one of those games where you're gonna take a lot of damage. If you wanna progress with this one, you gotta take your lumps and just learn to avoid taking more damage than you have to. Yeah, it's pretty lousy, but I wouldn't call this game broken in that regard, it's just annoying. I will say the enemy design here is pretty well done and fits the horror motif. Like these heads that crawl across the ground, is that Heath Ledger's Joker? There's all sorts of Lovecraftian monsters and aliens you gotta contend with, and that goes a long way in keeping this game interesting. The problem is that after level 4, the settings repeat, so there's really only four worlds you travel through, that's a disappointment, but what is here is really cool looking. Unfortunately the music and sound design don't really match the game's visuals, the soundtrack is okay, some tracks are great, but other tracks blast like a foghorn with that painfully early Super Nintendo sound font. When you take damage, you make this goofy muffled grunting sound, plus when you pick up an upgrade, you're treated to a Seinfeld bass slap. Ah yes, you know it's an early Super Nintendo game when you hear that sound. If I could only use one word to describe Musia, it would be rushed. That was my main impression playing through this one, it's like the dev team was under a ton of pressure to get this one finished. So many aspects of this game are good ideas in theory, but they aren't executed very well. I do like how this game looks, I like the enemy design, both in terms of visuals and patterns, but the gameplay is so stiff, the boss battles are a slog, the sound design is terrible, and the music is just annoying. I really can't recommend this one, but I will say, if you're looking for a horror themed 16-bit game, then you should at least try up Musia to see for yourself if the good can outweigh the bad.


Are you to blame for the narcissist's behavior? Are you to blame for how they act or conduct themselves? Are you to blame when they become angry towards you? Are you to blame when they choose to abuse you? The narcissist would love to make you believe that you are the cause of their behavior. They would love to make you believe that you are the reason why they are acting that way. That's why they gas like you. That's why they sow seeds of doubt within you and try to get you to question your own memory, perception or sanity. They want you to believe that it is all your fault. They want you to believe that you are the cause of their behavior. That's why they're always in denial of the truth and of reality. They're always shifting the blame onto you. They're always projecting their insecurities onto you. They want you to believe that you are the cause of their behavior. And the reason for that is because it makes it more believable for them. It makes them believe that they are not at fault. It makes them believe that they are not responsible. Narcissists are very weak, insecure people who are doing everything they possibly can to avoid reflecting on their weaknesses and insecurities. You are not to blame for the narcissist's behavior. You are not to blame for how they choose to behave. The narcissist's behavior is a direct reflection of their thoughts and feelings. It is a direct reflection of who they are on the inside, as within, so without. It really has nothing to do with you. You cannot get a constructive or optimistic attitude from the narcissist because that's just not who they are. That's not what they're about, just as if you squeeze an orange. You would get orange juice. You would not get apple juice from an orange. And you will not get a constructive or optimistic attitude from the narcissist. You are not to blame for the narcissist's behavior. You are not to blame for how they choose to behave. But you are responsible for being around them and enabling them to continue that behavior. You should hold yourself accountable for choosing to be around them. That is the only way that anything will change. The narcissist is not going to be responsible. They are not going to hold themselves accountable for their actions. So nothing is going to change unless you hold yourself accountable for choosing to be around them. But you are not to blame for their behavior. They choose to act that way and it is the direct reflection of how they think and feel, as within, so without. Do not let them convince you that you are responsible for their behavior. You are not responsible for someone else's actions. You are not responsible for how someone else chooses to treat you. Thank you for watching. I hope this video resonated with you. Please like, comment, share and subscribe. Click the bell icon to receive notifications for my future videos. If you would like to donate, my PayPal link is in the video description. Coaching and inquiries you can email me at www.coachingandjuma.com. Thank you for watching and I will talk to you soon.


Greetings! As we head into the Thanksgiving break, I want to take a moment to share our deep appreciation for all we've achieved during this challenging time. By working together, we've been able to continue our in-person classes to this point just as we had planned. We've done this by following health and safety guidelines and by adjusting the way we teach, learn and do business. And we've tested a lot. More than 150,000 COVID tests since the start of the semester, with fewer than 100 students testing positive. A tiny rate that's enviable and far below that of the state and the nation. As we've adapted, we've continued to innovate and achieve. Our students and faculty have been recognized nationally and internationally with scholarships, honors and other awards. And we've earned coveted grants and sponsorships to continue our important research efforts, many of which focus on keeping our communities and our environment healthy. I realize this has not been easy. There's been frustration and fear. For too many of us, there's been also heartbreak. Made all the more difficult by the need to keep our distance. But through all of this, we've shown the strength and bond of community. Whether student, faculty or staff, alumni or friend on campus or at home, you're part of a university that knows how to come together. Under all kinds of circumstance, for this, I will always be grateful. With thanks to each of our catamounts for your patience and perseverance, I wish you and your loved ones a happy and safe Thanksgiving.


So today's session is, the topic is styling blocks. So we have two presentations by Michael Burridge and Justin Tedlock. And if you have questions, drop them in the chat or you can use the hand raise icon. And I'm not sure Michael and Justin, if you want people to wait or maybe just at the beginning of your session, just let us know if you would prefer people to wait till the end or just ask questions as things go. So I will introduce our speaker today. First one up is Michael. Michael, why don't you tell us a bit about yourself? Yeah, I'm Michael. I'm based in the UK. I work in developer relations. You know, web developer, well, actually I started working with web development back in the 90s when the web was still in its early years but I've taken breaks and had done other careers in between and then came back to web development about 10 years ago which is when I discovered WordPress. And yeah, and then made the move into DevRel or developer relations. Awesome. And our other speaker today is Justin Tedlock. Justin, would you like to introduce yourself a little bit? Yeah, sure. So I'm Justin. I'm based in Alabama in the United States. I've been in the WordPress space since around 2005. That's when I was in college. I've worked as a theme developer, plugin developer, business person, writer, a little bit of everything. And so now I'm in developer relations alongside both Michael and Ryan. So that's how hopefully we'll get a bit of DevRel done today. Awesome, thank you, Justin. Okay, so just before we get in, I'll do a couple of quick announcements. So WordPress 6.3 is in active development. I think they just released a release candidate. So if you're interested in getting involved in that, I just dropped a link in the chat. WordCamp US is the next major flagship, August 24th to the 26th. And there will be a community summit that precedes that. The next WordCamp Asia has now been scheduled March 7th to the 9th, 2024. Here's a link to that. And if there's lots of local WordCamps starting to be scheduled post-pandemic. So if you're interested, there is a link to wordcampcentral.workcamp.org where you can see the full list of upcoming WordCamps. Without further ado, I'm gonna stop rambling and hand the presentation over to Michael. Just one more announcement. Gutenberg 16.3 was just released about an hour ago, a couple of hours ago, so that's now available. Okay, thanks, Ryan. Let me just share my screen with me a second. Okay, you can all see the slide, yeah? Okay, so I'm gonna talk about blocks that have complex markup. And then I'm gonna demonstrate a way in which you can give users control over how to style child elements of blocks with complex markup. So block supports is great. Block supports allows you to easily add common styling options to your block, like color and spacing properties such as margin and padding. When you add these supports properties to your block.json file, your users get control in the setting, controls in the setting sidebar so that they can select, for example, text and background colors or the padding that gets applied to the block. But these only work at the root level of the block, which is fine for simple blocks such as a paragraph block or a heading block. But what do you do if your block has much more complex markup? Block supports only targets the wrapping element of the block, so the outer div here. All the internal elements will inherit the colors that the user selected and the margin and padding that they've defined will only be applied to the outer div. But what if you want to give your users options to change the styling of the header element, for example, or even just change the color of the H2? Or perhaps you would like to give your users the ability to style the summary element separately from the details element. Or indeed, do all of this. If your block has complex markup like this, it's not immediately obvious how you can enable users to style the inner elements. But there is a way. And that is by leveraging CSS custom properties, which are also known as CSS variables. CSS custom properties are defined by prefixing the name with two dashes and then assigning a value to it. Then once defined, they can be used anywhere in your CSS style sheet by using the var keyword and referencing the name of the CSS custom property that you'd previously defined. So here the H2 element will have the color midnight blue as that is the value of the CSS custom property that's being assigned to the text color, namely dash dash primary color. They're often called CSS variables rather than by their proper name of CSS custom properties because they work like variables in other languages in that they store a value. So this is the equivalent of writing this, but by defining values in CSS custom properties, you can reuse them across your style sheet to ensure consistency across your site. For example, if you have to conform to a design system. Also, if you need to make a change to a value, you only need to do it once in the custom property. You don't have to search through the entire style sheet to find every instance of the value you want to change. Now, I'm sure you're all familiar with all of this. I'm sure you've all used custom properties. You know, all about custom properties and have used them, but you're probably used to defining them at the root of the style sheet like this and then using them elsewhere in the style sheet, but you don't need to define your CSS custom properties in the root element. You can define them in any element and they're then available to any child element of that element. So, going back to our complex block markup, we can do something like this in our CSS. Notice that we're defining our CSS custom properties at the level of the wrapping div element rather than at the root level as shown a couple of slides ago. So, the div here has a hard coded background color which happens to be dark blue and a text color of white. Whereas the header, our child element has a background which is lighter blue and a text color of yellow, which it gets from the CSS custom properties defined at the top of the CSS there, which gives us a block that looks like this. Excuse me. But this is still isn't very useful as everything is still hard coded into the CSS and it's still not user configurable, but it does lead to another thought. If we can define our CSS custom properties at the level of the wrapping element in the CSS, does that mean we could actually inline them in our markup? Well, actually, yes it does. So, rather than having the CSS custom variables in the style sheet file like this, we can instead put them in the markup like this. So, here we've removed the CSS custom properties from the CSS file and instead we've put them inline in a style attribute in the div tag, but we're still referencing the CSS custom properties from the style sheet file. Yes, it all still works exactly the same. Now, we know that the block editor inline styles when you use the block supports properties that we looked at a bit earlier. As you can see in the screenshot of the rendered markup from a block and we now know that we can inline CSS custom properties and still reference them from the style sheet file. So, the combination of these gives us the idea for a strategy to enable styling of inner elements by users. What we need to do is get the values of block attributes and inline them into the block wrapper element as the values for CSS custom properties. And for this, we can use the use block props hook. So, let's see how we can do that. For this example, let's assume that you want to give the user the option to change the header background color and also the text color of the H2. In this example, I am focusing on colors, but the principles that I'm demonstrating here can be used for any CSS property, borders, so the color width radius of a border, spacing properties such as margin and padding or even transforms like rotate and scale, any CSS property you can think of, these principles will apply too, but I'm just focusing on colors just to keep it simple. So, we're gonna need some attributes. We need to define a couple of attributes in block.json, the one for the header background color and another for the H2 that's inside the header. So, I'm calling this header background color and header heading color. If you wish, you can opt to give the attribute some default values so that some styling is initially applied even before the user starts changing things and that's always a good idea to provide default values. Then over in our edit function, though actually edit is technically not a function, it's a component. So, in our edit component, we need to get the attributes by destructuring them from the object pass to the edit component. Then we define a styles const which takes as its value an object. In that object, we define names for the object properties that are the names of the CSS custom properties we want to use. You can see that they have the double dash prefix that distinguishes them as CSS custom properties. And then for the values, we assign the corresponding attributes and now for the magic bit. We pass an object to the use block props hook. This object has a style property which takes as its value the styles object that we created above. Then just as use block props spreads classes and block supports props onto the wrapping element, use block props will also spread the contents of the object pass to it when the block is rendered. So, in this case, the wrapping div will get a style attribute with inline styles and the inline styles that form the contents of that attribute will be the two CSS custom properties with the values received from the block attributes which you can see if we inspect the element and you can see that use block props has added a class and also turned the object that we created with the CSS custom properties and attribute values into a style attribute on the div. So we've achieved exactly what we set out to do. We've inlined our CSS custom properties with the values from the block attributes. Then if we look at the style sheet, we just make sure that we target the relevant child elements in the style sheet and then reference the CSS custom properties that we defined in the object in the edit component. And then bam, it all works. Now, that's working in the editor, but not in the front end. To make it work in the front end, we do exactly the same in the save function. We destructure the attributes, create the styles object with the CSS custom properties and the attribute values. Notice that both here and in the edit component I explicitly referenced attributes.attribute names. So here attributes.header background color and attributes.header heading color. But you could of course destructure that the attributes first if you wanted to and that would make the code there a little bit cleaner. And we pass the styles object to the use block props hook. So all exactly the same as in the edit component except in the case of the save function, it's use block props.save. When the block is rendered in the front end it uses the same style sheet as the editor.  So that's all well and good, except that all the examples I've shown you so far have been JavaScript and offer a static block. For a dynamic block, it's kind of the same but also a bit different. So let's take a look at that. There's a couple of ways to create a dynamic block. You could define a render callback function and pass the attributes to it is one way. The other way is the more modern way and that's the method I'm gonna use here. That is to define a render file in the render property of your blocks block.json file and then create the PHP that will do the server side rendering. An advantage of doing it this way is that the render file receives the attributes automatically. So you can just reference the attribute subject. In fact, because it's PHP, attributes isn't actually an object in the way that it is with JavaScript. In PHP it's actually an associative array so the syntax is slightly different. What's different for here with dynamic blocks is that when we define styles it stores a string rather than an object. So if you recall when we previously passed an object to the use block procs hook in JavaScript in the edit and save functions that we passed an object, what we need to do here is pass a string. So we need to literally build the string that's gonna be passed to the style attribute of the wrapping div. So one thing to notice here because we're literally building the string that will populate the style attribute on the div we need to put the semicolon that separates each of the CSS variables explicitly into the string. Also notice that we're concatenating the two lines into a single string. And then having built the string just as we passed the styles object, sorry, just as we pass style to a style property and the object passed to the use block props hook in the edit and save components. Here we pass styles, the styles string to a style property in an associative array which in turn is passed to the get block wrapper attributes and get block wrapper attributes in the PHP performs a similar function to use block props hook in JavaScript in that it will echo the CSS custom properties as inline styles onto the div when the block is rendered. Then the block which this time is a dynamic block so remember that it's been server-side rendered will look exactly the same when rendered in the front end because it's using exactly the same style sheet with exactly the same CSS properties. And that's it. All that then remains is to add some controls to the inspector control sidebar and some on change functions to allow the user to the use block. To allow the user to then update the attributes and then those child elements or the internal elements of our complex block can be styled by the end user. And that's me done. So thank you, Michael. Does anyone have any questions for Michael? Oh, Jose Guerrero has raised their hand. Do I unmute and chat? Oh, clapping. I'm sorry, I thought it was a raised hand. I don't know how to use Zoom, I guess. Thank you, Jose. Yes. So if there's any questions, feel free to raise your hand and unmute or drop it in chat and I can ask the question. Otherwise, I didn't see any come through in chat. We do have a prepared question, Michael, if you'd like to start there. So I'll start there. So can you do inline styles as a text string in JS the way that you do in PHP? Yes, you can. I wouldn't recommend it. You can do it, but what you need to do, you could build up the string in JavaScript, but you can't pass it to the use block props hook. You'd have to, when you define your block, you could add a style attribute to the wrapper element. But that needs to come after the use block props hook because the use block props hook will put a style element on regardless. And if you have your style attribute on your wrapping element before the use block props hook, it'll get overwritten. So you need to put your elements, say your wrapper element, say a div, then spread the use block props on it and then put your style attribute with the string that you've created. But it's clunky, I wouldn't recommend it. I would recommend using the way I showed, put your styles into an object, pass that object to a style property on the object that gets passed to the use block props hook. So yes, it's possible, but I wouldn't recommend it. I don't see any more questions. I haven't, I don't think anyone's raised a hand. So maybe I'll just wait another minute or two or maybe we've got about 37 minutes left. So maybe we'll just hand it over to Justin. If anyone does have questions about Michael's presentation, drop them in chat and we can ask them at the end. So. I'll be here for the whole hour, so. So without further ado, Justin. So there'll be plenty of time also for to ask Michael after what I do, but so I'm going to take, I'm going to take a different approach to what we're doing today than what Michael did. So I'm gonna, we're gonna do some, like a little bit of live coding today. Actually, I'm gonna share my screen and just closing a couple of things. So as a primarily a theme author, I get angry with the block developer sometimes because as Michael showed, you know, he used CSS custom properties to do some really neat things within his own blogs, but as a theme author, there's no easy way for me to control that from like a theme JSON file. And that's why I get angry with the plugin developers and block developers sometimes is because they're not, not because they're doing bad things, that sometimes they're not thinking through the use cases of how can I really make this easier on a theme author to like it, stand my block, like set up some defaults and, you know, make it like integrated with their theme in a better way. And this is particularly true for like complex blocks. So I'm pulling up a, this is a plugin that I've created a sort of complex with the markup and so on, so progress bar block. And I'll share that in the chat if after I get through. But so we're gonna just show, use it here really quick. And I do need to move, let me move. I have video controls in my way, there we go, all right. So this is just a simple progress bar. Let's add a few values, I don't wanna add a goal. Let's say, I don't know what's a good goal, say writing streak or something by writing streak. And let's say we're wanna make this, this is kind of a fun block, seven writing for 10 days. I actually have to show units and they, all right. All right, so we got a writing streak of 10 days. That's pretty neat. All right, there's a few things here in this block that are kind of styled by the plugin. There's some defaults like say the height, the background color and the foreground color, the progress bar. And there's no easy way for like me as a plugin, like on the plugin side to figure out how, like how do I get the right colors? And like what are the defaults? And that's really a design decision that should happen like for the theme author. All right, so in my style.css for my plugin and you can also integrate this directly into like your block edits as Michael showed. But I'm going to work just from the style sheet file, just for simplicity. So there are several, actually I have several like custom properties that can be overwritten by a theme. But there are certain ways like you have to name your CSS custom properties a certain way to make these work. All right, so like for example, here's the gap property is actually controls the gap between these, like the label and the actual progress bar. And I thought like a 0.5 RM, that's a really standard but what if a theme author wants to change this? Like they want it a little wider, a little narrower. That's up to them. And the important part, and I'm sorry for the lots of dashes here, but we'll get to that. So let's hop over to like my themes theme.json file. And it's, there is a settings and then under these settings, there's a custom. And this is a really fun thing to play around with. So I've created, like my plugin is going to integrate with, see, I'm going to type this out. Like I can set custom properties or custom values for my plugin. So the gap was the one, so let's just make a really big gap for demonstration and hopefully this works and we'll get to an explanation. All right, so save that. All right, so this is just my screen's taking a while to reload. All right, so there's a huge gap there now between the elements. Not exactly pretty, but it allows the theme author just to set like some really basic defaults. And these, by the way, can also be overwritten in this specific plugin. Yeah, like there's a block spacing and you can set that. The user can also set it. The goal here is primarily to make sure that there's a way for theme authors to set defaults. And if you've never used the custom key in a theme JSON, this is a great way to like integrate it with plugins because not in theme JSON, it only supports, for example, if I want to have a ton of stuff.  But if you have custom things, there's no way, no standard way except for to add them under the settings.custom key. All right, so some of the other things we have, let's just update this. Some of the other things we have here are like a foreground color and a background color for, I didn't say my theme JSON. But let's just test this out. Foreground, foreground color. And so I want this to match my theme. And I already have some presets for this. Save trying to think of the names of them. Foreground colors, let's say primary, subsoil. And I can't type when I'm talking apparently around. And just bear with me one second, contrast. And hopefully this actually works. So we're gonna save that theme JSON and we're going to, oh, I had the wrong reset refresh button. But all right, this should be back to normal now. All right, I think I actually have some caching saved, but we can't change those colors. The goal though is to utilize these custom CSS properties in your blocks and make, like if you just said the dash dash wp dash dash custom, and then you can use like your namespace and mine's a little weird. And then your block name and then a property name which would match. All right, so namespace and block. And that can also be written as that with a dash if you wanted. But this all like trickles down to your block and it can be overwritten if you want. And like you wanna have an option for users overwrite it, but hopefully like I'm just giving you some inspiration for helping theme authors integrate with what you're doing. But that's like the big presentation, so I'll just stop sharing there, but as I see someone asked, could you share your GitHub code with us? Absolutely, and I will link this in the chats if I can remember the URL. But feel free to bring any questions in about doing this. Thank you, Justin. That's good. It's great. It's a great presentation. I didn't see any questions coming through chat, but yeah. Yeah, someone was asked for the GitHub code and I just linked it. What is the best way to pull in a theme color palette as options in a block? Wow, they're coming up with the big questions. So we've seen color settings in a custom block. All right, that is a topic, a huge topic actually, but I don't know. I may have some example code. I'm going to look because that's, yeah, it's actually like it's something we probably wouldn't be able to walk through completely just in this presentation. There are a couple of functions that are, yeah, so there's block editor settings, get block editor settings function and PHP that's also something in the data store that you can get. But yeah, to your point. Yeah, I'm looking for some example code because I'm pretty sure I have some. I'm just trying to remember where it's at. Okay, bringing in custom colors. Yeah, feel free to bring other questions there while I'm looking through this. I might actually have an example in this plugin. I was just looking at, like edit block. All right, so yeah. That is not the best example either. Suppose that we have better reusable component that uses color paddock on it along with the use selects. Yeah, I think for me, I've been using a use setting and like targeting color palettes.custom for a few things. Can somebody pull up the use, a link to use setting? Let me see. I can get it. All right. The hook? Yeah, should be. Yeah, use setting. Yeah, under block editor. Yeah, I got it here. Just drop it in the chat. Yeah, you can pull up like use setting color. And then you can, like settings are weird. Like you can go like target color dot palettes defaults, which would be like the core, then color dot pallet dot theme or color dot pallet dot custom. It gets like user defined colors. There may be easier ways to like if the gradients, there's also a gradient drop down. I think it's still, it's maybe still experimental or use more origin colors and gradients which is a long quote name. It's experimental at the moment. And, but I've been using it anyway. Yeah, it depends on the specific use case. I'm bringing any questions don't have to be related to like what we presented either. Like we're here to talk blocks and or anything related to it. Or maybe somebody else has a way of doing the same thing in a different way. You know, I presented one solution to a problem. There's undoubtedly another way to do it. So if anybody knows of different ways to do things. But yeah, as Justin says, you know, we can, if you've got questions outside the scope of what we've been covering, feel free. Well, you guys, these are perfect presentations. No one has any questions. Yeah. Everything perfectly and clearly. So well done. Well done. Yeah. I'm still looking for like a color example over here on the on the on the my laptops. And I know I have some somewhere to block it or get it. Thanks Tobias. All right. I have one but it's using use select and it's very similar to what Anthony I'm trying to say linked. There we go. That's the words I'm trying to say. You can get all of the settings this way. I don't know what this is gonna look like in the thing, but you can get all of the settings for the block editor by doing that. But that is my understanding of use select of use use settings is that this would be doing that under the hood. So I'd recommend using the hook version rather than this, this, the select version. All right.  So as I finally pulled up something. All right. Yeah. So here is, I'm actually doing this from a theme, by the way, which you can totally use WordPress scripts from a theme. And okay. So this is actually grabbing the entire color palette right here. Use setting. So just import it from the block editor. Use setting. What is, this is actually a custom hook, but this, I'll actually, while we're at it, I'll show you this feature. Say group, not a, I'm gonna hit group. And let's just type a little paragraph. So what this feature is actually doing for my theme is creating like a color selection thing. So you can like change to whatever colors you want. Like really quickly. I've got more work to do on it. But like how I get the colors is entirely like just literally just one line of code. And of course I have to, you know, turn it in like a form that I need for elsewhere and they plug in. But actually I have pretty simple just to grab all the colors at once. Hopefully that helps, I think it was Anthony's question. And I'll be, I'm happy to share like more code that also if you want to get, need to ping me or anything later. It's left here. So anyone has questions about anything and everything? Yeah, sorry. Yeah, burning questions on your mind. Anything Gutenberg WordPress related. Also in the meantime, we do have one coming in, but in the meantime, I encourage everyone to read the developer blog. All three of us have written articles on there and we're in, I'm linking in the chat room, but we're also looking for other developers and designers to like share their own knowledge there. So click the contribution page on there if you're interested and you'll get in touch. All right. What do you have a new question coming in? Not sure if it is a good question for this moment. Have a task to set different default font sizes for different templates or post types. It's a different, okay, you could probably do that with a filter. Nick has, Nick Diego has some, a couple of articles and presentations on doing that. I'm sure you could do it by post type or maybe even template. Are you talking? Are you talking about, let me go back to the question. Set different defaults. Yes, setting different defaults though. Yeah, this would be like a theme JSON thing, right? You want, like I said, talking about the headings block. Yeah, I think you could, there's a couple of filters. You could probably do it on the editor side and you can do it on the, there's a PHP filter I think too. Look, I'm almost positive. Nick wrote an article on the developer block that covers this theme. Yeah, server side filters. Yeah, here we go. I don't know that there's a specific example to, to post type or templates, but I'm pretty sure I'm linking in the chats and hopefully this will be helpful. But yeah, there are filters that where you can change the theme JSON data, which, so if you're style and say the heading block with, like you're saying you set the default font size of, you know, 20 pixels or something for, like the H1 block, you should be able to filter that and change it on the fly. I don't know if it's possible to do that on a per post type basis or template basis at the moment, but that would probably be the place to start. He's added another comment to the chat. So there's a theme, yeah, there's a theme JSON PHP filter, but not sure if it's possible to alter the font size, for example, H1. Yeah, I'm trying to think, yeah, I mean, that was what I wasn't sure on if it was possible to do that. But yeah, if you try that filter, I mean, let me see. You have access to, I mean, you have access to PHP. You can check for users logged in. I guess it would just be a matter if you have access to, like, the post type that you're wanting to do that on. Either of you know, like, if that's available, like globally in the edit, like the edit screen, like the post type name, for example. Let's see here. Getting more tricky. I mean, I guess it depends on if you're trying to control whether it's an H1, H2, H3, 4, 5, 6, whatever. That's completely configurable in the template, but if you're trying to control the font size associated with an H1 for a post type, you might, I'm not sure, you might be able to override some of the defaults. I don't know, this is the theoretical, like you used the approach that Michael did, where you wrap your template and override some of the CSS custom properties. I'm not sure about specificity there. If, like, if something's defined on the root and then the same name is defined inside an element, if it becomes, it overrides a class that uses it. Yeah, I kind of like, or semi-related to this, is I want to encourage us to start, like as designers, to stop thinking about design in these, like, huge, like I want to change it for a post type, or I want to change it for a template, like on these, like, let's start thinking about, like design in terms of like components, like smaller bits, like, and I know sometimes you have to change things per post type, per template or so, sometimes you can't get around that. But when I'm designing now, I approach things much differently than, say, at that, like, top level. I'm looking at it from more of a smaller level. There may be times where, like, for example, I may add, like, a custom block style for a group or something, if I want to style a section, and that might set all the default, like, font sizes and so on, for, like, this one section. I think, like, in terms of, like, the block header, we have to think, like, when we're designing, we don't know where that block's going to end up. So we want to, like, for styling at this top level, sometimes it's not, like, the ideal experience there. I would design, I'm starting at the block level for everything. That's a little, that's a different approach than, like, you know, 20 years ago when I first started learning web development, you kind of designed everything, like, this top down and now it's more atomic. This is another word for it. And that's, like, kind of getting way off topic because sometimes you just need to, to what you're asking, change things for one, for one specific scenario. But maybe it helps, like, you rethink your approach, like, just kind of go back to the drawing board a bit. If, like, you don't find, if we don't find a solution for this or you don't. But I will, I'll actually look into, like, do some, like, real-world testing with this. If you don't mind pinging me on Slack or Twitter or anywhere, I will be happy to dive into that a bit. All right, so we're under the 10-minute mark. You guys working on anything fun you want to share? Yeah, we'll give about nine minutes left. Just a quick reminder that if you, to save the chat for the meeting, you have nine minutes, you have plenty of time, but just, if you want to save the links and everything in the chat, just make sure to save it. Yeah, I don't know. Should we just leave it open for the next nine minutes and see if anyone, if any questions pop up or give people nine minutes back? Yeah, sure, hit us with your questions. Yeah, we can cut it early too, if we can give it up a minute or two. Sure. Yeah, sure, if there's nothing else, I guess we can give people back eight minutes of their day. Yeah, just a quick reminder that WordPress is open source and if you're interested in contributing, you can figure out how to do that in whatever way suits you. If you don't have to be a developer, you can do, you don't have to write code, you can, it's lots of ways. So just hit up make.wordpress.org and all are welcome and yeah, great. Yeah, thanks for coming everyone. Yeah, and thank you to Justin and Michael for putting these great presentations together and sharing all the good info is with us today. Thank you for hosting, Ryan. Oh, anytime.


Ghana is set to construct a $60 billion petroleum hub. Ghana is a country in Africa that is officially known as the Republic of Ghana. It shares borders with the Ivory Coast in the west, Burkina Faso in the north, and Togo in the east, and spans the Gulf of Guinea and the Atlantic Ocean to the south. Located at Bonnier, Ghana's western region, plans are still in the works to turn a crude oil exporter into a petroleum hub in the sub-region by 2030. The center, which will be built in Ghana's western region, where the oil was discovered, is projected to cost roughly $60 billion. Refineries, petrochemical plants, power plants, light industries, waste and water treatment facilities, storage facilities, and commercial and residential centers will all be located at Industry analysts believe that the hub should not only create jobs, but also establish a sustainable means of refining local crude, create an environment for public private synergies to flourish, and unify all three spheres of the petroleum industry, upstream, midstream and downstream, with a location scouted and feasibility studies underway. The business sector has been encouraged to take part in the development and execution of policies that would make this ambition a reality. Africa Reloaded is a reimagined version of the continent of Africa. Join us on this journey across Ghana to learn more about Ghana's 60 billion petroleum hub. According to the parliamentary select committee on mines and energy, the construction of a petroleum and petrochemical center in Ghana will bring in roughly $1.56 billion in export taxes per year. The committee stated that the hub's formation will significantly contribute to the country's economic growth by adding value to the country's petroleum resources and creating jobs. The committee also stated in its report on the petroleum hub development bill that the hub will enhance the country's GDP by 130% by 2030 by injecting $60 billion into the economy. It would also supply the country with liquefied natural gas, LNG, facilities for power generation, as well as support the growth of diverse sectors, including petrochemicals. The country is predicted to gain 780,000 direct and indirect jobs as a result of this. Taxes from downstream value chain operations will also increase the government's revenue, allowing it to invest in development. The center also includes fundamental social amenities such as schools, health facilities and recreational parks, all of which are anticipated to promote people's social well-being according to the committee's study. Petroleum Hub Development Bill. Cabinet approved the Ministry of Energy's plan to construct a petrochemical base in the country's western region at its 48th meeting. The project is justified by the chance to build a substantial infrastructure for petroleum refining, processing, discharge, storage, distribution, transportation and trade using Ghana as a hub for West Africa and the rest of the globe. The project entails the construction of refineries, port terminals, storage facilities, petrochemical and LNG terminals, as well as a pipeline network capable of supplying petroleum and petrochemical goods to domestic and West African markets. The bill's objective is to create a corporation that will, among other things, coordinate and oversee the hub's activities, enough to meet domestic and West African demand for petroleum and petrochemical products. Funding for the project. The committee was informed that the hub's anticipated cost is $60 million U.S. dollar, of which the Ghanaian government is expected to pay $6 billion U.S. dollars or 10% of the entire investment cost. To finance the remaining $54 billion U.S. dollars, the government expects to rely on private money. The government's involvement would be focused on establishing the initial basic infrastructure, which would include land acquisition, compensation, the development of road and railway networks, and the expansion of social facilities in the area. Economic viability of a project. The committee was advised that the project's economic viability was justified by rising demand for petroleum products, as well as an undeveloped market in sub-Saharan African countries. Total petroleum product consumption in the West African sub-region is currently expected to be 30 million metric tons per year, with a predicted growth to 78 million metric tons by 2030. URIID use is predicted to be 2.6 million tons per year in sub-Saharan Africa. The hub's establishment is expected to allow the country to maximize the value of its gas reserves, which are estimated to be around 2,080 billion standard cubic feet, as well as take advantage of Africa's emerging market for the production and distribution of ammonia, fertilizer, and methanol, among other things. Major initiatives, such as the construction of a petroleum hub in Ghana, present a huge chance for the country to prosper and create more jobs for its population. The standard of living of Ghanian will improve as a result of this. Thank you for taking the time to watch. If you enjoyed this video, please like, share, and subscribe to our channel for more information.


The study presents the successful synthesis of five new non-centrosymmetric lanthanide selenides with strong second harmonic generation, SHG, using partial fluorination of the lanthanide oxygen polyhedron and an HF corrosion resistant supercritical hydrothermal method. The compounds exhibit a novel 3D framework composed of 1D molybdenum selenide chains bridged by LN2F2012, OH2, dimers, with SHG responses ranging from 1.0 to 9.0 times KH2PO4, KDP, at 1064 nanometers and up to 1.2 times KTP, KTPO4, at 2050 nanometers for the half-filled GD compound. These compounds also possess excellent physical chemical stability and strong luminescence emission, making them promising multifunctional non-linear optical materials. The study offers an effective way for designing and synthesizing high-performance non-linear optical materials. This article was authored by Yun Siong Ma, Ping Feili, Chunli Hu, and others. We are article.tv, links in the description below.


Good morning and welcome to this week's edition of Encompass Live. I am your host, Krista Porter, here at the Nebraska Library Commission. Encompass Live is a commission's weekly webinar series where we cover a variety of topics that may be of interest to libraries. We broadcast the show live every Wednesday morning at 10 a.m. Central Time. But if you're unable to join us on Wednesdays, that's fine. We do record the show as we are doing today. And then it is posted to our website in our archives for you to watch at your convenience. And I will show you at the end of today's show where you can access all of those recordings. Both the live show and recordings are free and open to anyone to watch. So please do share with your friends, family, neighbors, colleagues, anyone you think might be interested in any of the shows we have on Encompass Live. The Encompass Live Commission is the state agency for libraries in Nebraska and we provide services to all types of libraries in Nebraska in the state. So you will find shows on Encompass Live for all sorts of libraries. Public K-12, academic corrections, museums, archives, et cetera, et cetera. Really our only criteria is something to do with libraries. We do presentations, book reviews, mini training sessions, demos of service and products offered. We have Nebraska Library Commission staff that come on to do presentations for us sometimes, and we have guest speakers that come on sometimes. Today we have a mixture of that. Today we are talking about, here are letters about literature. One of the letters we have with us is Tessa Terry, she's our communications coordinator here at the Library Commission. Good morning, Tessa. And Christy Walsh, who is the assistant library director at County Public Library. And they're both involved in the Nebraska Center for the Books of Letters about Literature program. So I'm just going to hand it over to both of you to take it away and tell us all about this year's program. Let's go. Um, let's see. Do you want to start Christy and just talk about the Letters about Literature program in general and how it works with the Center for the Book? I would be happy to. Thanks. The Nebraska Center for the Books supports programs that celebrate and stimulate public interest in reading books and the written word. And we are an affiliate center with the Library of Congress. What's about literature is one of the programs that historically was based or done cooperatively with the Library of Congress. And in the past couple of years has become the responsibility of the state centers for the book. So we are very excited to continue this program as a statewide reading and writing program. It offers readers the opportunity to write letters to a favorite author or to someone who wrote a book that moved them in some way. It's not a book report. It's to say, Hey, this book was wonderful. I want to tell you why or why it made a difference in your life. So there are opportunities for a variety of grade levels to participate. And to do that, you don't have to, you just need an adult to help you submit your application to send your letter in. And we look forward to seeing all of the creative letters that are written each year. Let's see. So here's just a little information about submission dates. So we always open the contest November 1 and we close it on December 31. So two months for people to submit their letters. In the past, people have done programs with this in the summer, and then save the letters to submit in November when the contest opens. So you don't have to write the letters in that time. You can write them anytime and just submit them when the contest opens. Let's see. So the information is always out there on the website at any time of year for people to go and look at and, you know, whenever you read something, whenever of someone you read something really cool and want to share. Yeah, exactly. Let's see. So, why the letters about literature program Christie. We've been doing this for many, many years. I want to say, maybe 18 something like that. Correct. Yes. Why letters about literature I know we got started on this because it was a Library of Congress program. Why is this a special program. I think it's a special program because it celebrates that connection between readers and writers that we've all met those books in our lives that touched us in some way and what a great way to reach out to those authors and say hey you made a difference because I'm listening to authors talk is a somewhat lonely vocation and the possibility to get some feedback or know that all of your labors that you put out there as this finished product made a difference in someone's life. What a great way to celebrate that and so when participants write those letters and send them in. We are so excited to as center for the book. To read those to know that books touch people and then celebrate those young authors the students who participate and share how a book made a difference in their life because that's a lifelong thing. Maybe we, you know, adults to it would be great to acknowledge but there's not a category for that at this point. So it is a special program it is done nationwide centers for the book across the country celebrate letters about literature and have slightly different model perhaps but there is an opportunity for students to participate in a letters about literature program across the country. So it's kind of fun also to see what our colleagues and other centers for the book are doing. And it's a great way for students to practice your writing skills I mean you get to do that all the time at school why not do something that is also fun. So, we want to celebrate that and very personal to you. Reading and, you know, being affected by a book is huge, very personal, it can be. Yeah, I think when we see letters. We see letters that come in that just have, you know, really personal themes from these students about why this book spoke so deeply to them. And the books really range pretty widely I mean we've had nonfiction books when fiction books poetry. Memoirs like it's across the board what kind of book will speak to a student and how it has just changed the way they see the world or see themselves. Yeah, those are deeply personal things and the courage it takes to write about them and then just send it off is really amazing I think. Definitely. And there's so many talented young people out there. If there's another opportunity to celebrate young writers. Yeah, let's see what we can do. Um, so it's been a couple years now since we stopped doing the national program or that since the Library of Congress stopped doing this as a national program through them. How is this different. How have we changed things just a little bit from when we did it with the Library of Congress. I think it's perhaps. I want to say it's more refined there aren't as many layers to it and so previously, people would submit their entries it would go to the Library of Congress in Washington DC and they did some. They looked at all the letters and kind of weeded things out or or so they pared down what actually came back to those centers to look for the awards. And that layer is no longer there. There were advantages and disadvantages to that but as a state we've been able to streamline it and maybe customize it so it works really well for our center for the book, and hopefully for all of the participants to the Nebraska Library Commission does amazing things. And some of it, you know, there's a lot of it behind the scenes but kudos to everybody at the commission. He's helped us reinvent letters about literature for the state of Nebraska and to continue it on and so we get the letters still and then we get to celebrate. So I'm, I'm really happy it. There was a little bit of a bumpy transition, but who doesn't need to challenge once in a while to keep us all on our toes perhaps. So I think we've come through that and now we're really ready to move forward in a great way. Yeah, I agree. I, I like that we have control of, you know, getting those letters submitted to us. Everybody has a problem submitting their letter they talked to me probably. And so it's really easy to fix things or try to make it easier for a student or teacher to submit or answer their questions because we have control of the submission process. And then I know some of our judges have just commented that knowing they get all the letters and not a weeded version of them. They like that idea. And it allowed us to tighten up the time frame to for the whole process that we didn't have a perhaps two month period in there where they were in Washington DC and we really didn't know the status and like Tessa said we couldn't answer questions because we didn't know where things were in the process. Yeah, so it's just more, we just definitely have more control of it. You've named no letters have been submitted or what was going on until you until they weeded and sent what they thought was good ones to you. They were all submitted to the National Center for the book and then they went through, did some rating and things on them and then sent back to us the ones they felt were viable submissions. Nice to be able to do it ourselves now. And it's nice to be able to answer a question, you know, if a letter would have gotten weeded back then we could not answer why it had gotten weeded, because we never saw it before then or could give, you know, notes on what happened then what went wrong. So, yeah, I like that we kind of have control of that. It has been a great partnership across the country is the centers for the book, even though the Library of Congress said we're no no longer going to be a part of this program. The centers across the country said this is still really important and each state has gone back and, and either reinvented or continued on what they were doing on a state level so it continues to be a priority for all of the affiliate centers, even without the direct involvement of the Library of Congress. Great. So, this is a slide of our award ceremony kind of at the last step of it but Christie do you want to go over what happens with the winners. Once we select those winning letters what that ceremony looks like. Well, I haven't been able to attend because of weather and a variety of other things. We do. The winners are notified. They are then recognized at a proclamation ceremony with the governor at the Capitol. And then we generally have a luncheon afterwards to celebrate the award winners they have the opportunity to read their letters and share those. And then we have awards for them as well. Did I leave something out there tells I'm sorry. The heritage room. Oops, yes. Okay, sorry. Once the winners are selected and we've had the celebrations then they are placed in the heritage room at the Bennett Martin Library, which is part of the Lincoln City's library so becomes part of that literary heritage of the state of Nebraska. Yeah, it's a really fun day. The kids get usually the morning off of school. And because it's usually on a Tuesday and Yeah, you get to see the Capitol, you get to have a fun lunch and then you see this really amazing room at the Bennett Martin Public Library where all these Nebraska authors have their work archived and saved and we save your letters so that it's your first work as a Nebraska author saved in the heritage room. So that's really fun. So they're like cataloged and they have in there as like authors. Yep, they have their own section and I know in the past. There was a situation where one of the students years later came back and she wanted a copy of her letter to read for some event, or for a family member. She didn't have her own copy but we had a copy of it in the heritage room that she could find. Yeah. That's great. And we have generous sponsors that help us with that too. And so, in the past humanities Nebraska houch and bindery Connie Osborne Center for the book, I'm forgetting somebody. We have generous bookstore in Seward I believe all all of those generous donors help continue the program and help make sure we can give awards to recognize each of these winners to So here we have just a list of ways librarians teachers parents can get involved and you know promote this program at their library. So a couple of them are just librarians partnering with teachers in their classroom media specialists, helping kids to select books. Sometimes you read a book and you just don't know how to, you know, lots of books affect you, but maybe you don't know which one you really want to talk about or which subject. And that's deeply about and that's really where parents and teachers and librarians can come in and help students, you know know the difference between a book they liked and a book that really affected them. So, just that having that connection and talking to them about books, really, you play a huge role in that. So here's one library as a place to find your book and sharing materials with your library users whether that's books bookmarks that we send you and book club kits or a little print out that the contest and how you submit your work. Here's one that kind of Christie touched on earlier about adults being able to write letters. Do you have any adults in your book clubs that would might be interested in writing their own letters as examples for these kids to let them know, you know what a letter even looks like sometimes kids don't even know what letters look like anymore. You know, and what the difference between writing a letter to an author is versus a book report summarizing what happened in the book. Those examples can be huge. And it's nice for them to see adults doing this too this isn't just something they're doing for school credit. It's something that you know reflective writing has a huge impact on students and adults, both you know that's why journaling and things like that are so huge so as a way to see that this is not just an assignment it's something they can carry through The ability to put your thoughts into words and do it in a concise thoughtful manner is a skill that it's a lifelong skill, you will use it again and again so even if you don't love writing. It is good to keep up with it and be able to do it well. Yeah, and that's the next one. Look for writing mentors from local writing groups or colleges that would be interested in working with kids on helping them with this reflective writing. Yes, homeschool groups. Lots of libraries homeschool groups use their public libraries as a resource. This would be a great project for them to work on. We have no stipulations on what kind of book has to be written about so it's totally up to them. And then what we've done in the past is libraries have hosted letter writing clinics as well. This was what I was talking about earlier where sometimes in the summer, or early in the school year libraries or media specialists have hosted letter writing clinics where they go through the whole process of finding a book, writing drafts of your letter, reading it to each other, working on that, and then they submit them together as a group so we have a lot of resources for letter writing clinics that you can access and we'll go through that as well. So this process has changed drastically just over the last, I mean, five years from mailing in a physical letter to a submitable process online when it was still with the Library of Congress. And now we have our own submission page here at the Nebraska Center for the book. So I'm just going to pop over. Let me just open my browser then. Okay, so on our Center for the book page under our programs tab. And our letters about literature page. We have a lot of great information for you. We have the 2021 guidelines that you can look up and that just tell you everything you need to know about submitting your letter submission dates, what we're looking for. Where to submit your letter we've got a URL on there. And then we also have some assessment things about what the judges are looking for and what the winners process looks like so this is all available on our website. But we have a huge submit button for you. It takes you to just this very simple form. And then what we're going to ask for is a school name and a school phone number. We don't ask for the students contact information. So if this is, this could be a library name or a library number. We just want an adults contact information if for some reason we can't get a hold of you by email. We have students first and last name, the students age, and since we have issues with kids under 13 submitting things. If you have a student that is under 13 as of November 1 this year. We just ask that you have a parent or legal guardian. Right in their name here to say that they consent to having their child's letter submitted electronically. We want to know what level you're in. So that's by grade level one four through six to seven through eight and level three is for high school students nine through 12th. And then we want to know your specific grade just so we know kind of where, whether you fall in the low end or the high end of there, just a little more information for us. But when they do the actual evaluation and competing they're grouped into those three levels. Right. Exactly. Yeah. And it's it's really only after we've selected winners that we go back and we we like to know that information just for our records to know that a sixth grader one or that a 12th grader run one kind of a thing. Here's the more more contact information. So we put a teacher's name or a teacher's name. This can be a library. This can be.


The hawks have had China in their crosshairs for years, notes from the edge of the narrative matrix. Western media have erased from history all the Western provocations which led to the war in Ukraine. They only report Western narratives. They hide Ukrainian casualties and ignore the Nord Stream pipeline bombing. Then they tell you to worry about foreign propaganda. Every now and then I like to highlight the fact that all this China stuff was forecast way back in 2004 by Michael Parenti who said that the unipolarist Neoconservative ideology that had hijacked US foreign policy envisioned a massive strategic confrontation with Beijing. The PNAC plan envisions a strategic confrontation with China and a still greater permanent military presence in every corner of the world, Parenti wrote in his book Superpatriot. The objective is not just power for its own sake, but power to control the world's natural resources and markets. Power to privatize and deregulate the economies of every nation in the world, and power to hoist upon the backs of peoples everywhere, including North America, the blessings of an untrammeled global free market. The end goal is to ensure not merely the supremacy of global capitalism as such, but the supremacy of American global capitalism by preventing the emergence of any potentially competing superpower. PNAC refers to the project for the new American Century, the wildly influential Neoconservative think tank whose members played a critical role in pushing the Iraq invasion. Since that time PNAC's vision for the future has quietly become the mainstream US foreign policy consensus. After the fall of the Soviet Union, the US government espoused a doctrine of securing US unipolar planetary domination by ensuring no rival superpowers develop, nicknamed the Wolfowitz Doctrine after the Pentagon official who supervised its drafting. Paul Wolfowitz would later become a PNAC member. What we're witnessing now is this doctrine of maintaining unipolar hegemony at all cost, colliding with the emergence of a multipolar world order, carried largely by the rise of China to superpower status. Parenti saw this coming because, like PNAC, he saw that these two things must necessarily collide.   Those who don't outright cheer for imperial militarism ignore it altogether or don't place nearly enough emphasis on it.  And of course, that's not ultimately all their fault. They're swimming in the same ocean of empire propaganda and psyopsis everyone else. But as we're accelerating toward a global conflict of unfathomable horror, this dereliction of duty is getting less and less acceptable. This needs to change. Sure, there are other problems we've got to worry about, but none of those problems are going to matter when we're all dying in a nuclear holocaust. There's no excuse for anyone who thinks of themselves as anti-imperialists to fail to stand against the Empire's brinkmanship.  This isn't healthy, and it isn't acceptable. People on the Left, including some pretty influential ones, used to mock me for warning that mounting Russia hysteria was being used to pave the way for reckless escalations against Moscow. Now we're closer to nuclear war than at any time since the Cuban Missile Crisis. This isn't something you can just ignore. This isn't something you can put on the back burner for when you have time. The fate of our entire species is being threatened by the Empire's campaign to secure unipolar planetary hegemony, not later on in the future, but right now. People are watching this, and people are noticing. If the Western Left doesn't step up its game on opposing brinkmanship between nuclear-armed major powers, other political factions are going to step in and fill the void. If, slash, when this happens, we'll have no one to blame but ourselves. At what point are we going to wake up and start saying no to this? It has to be soon, because if you wait until a world war between nuclear powers has actually started, you've already waited too long. I highly recommend people get moving on this. The difference between Western Liberals and the Proud Boys is that the Proud Boys are self-described Western chauvinists who promote the belief that West is best. Whereas Western Liberals espouse these positions without voicing them out loud. The most dangerous supremacist belief system in the world is American supremacism, because the belief that the U.S. should rule the world has humanity on a direct trajectory toward hot military confrontation between multiple nuclear-armed nations. There's a tendency to look at the prospect of nuclear war as an almost philosophical or spiritual subject, probably because you have to have such a big picture perspective to consider it properly. But it's a very concrete matter concerning actual physical warheads and actual physical people. We know that these weapons can end the world, and we know that they will do so under an increasingly likely set of circumstances. This is not religious end times prophesying. This is an objective scientific fact about a material situation that our leaders knowingly put us in. The fact that we are closer to nuclear annihilation than at any point since the Cuban Missile Crisis is not some act of God or fate or something that's passively happening like the weather. It's the result of concrete decisions made by concrete people with names and addresses. The fact that we could all die in a nuclear holocaust and the after effects thereof is right now a solid material reality, and it should be treated like one. We should be doing everything we can to demand our leaders change their policies to make that outcome far less likely. Spiritual enlightenment, inner work, personal psychology, journalism, political activism, and geopolitical analysis are all different aspects of the same one thing. In their authentic forms, they're all just different manifestations of the human quest for truth. The quest to learn the truth and the quest to let it inform the way reality expresses, whether that expression is in the way our own minds operate, or in the way human civilization as a whole is shaped.