This study found that both young and older maternal ages were associated with poorer birth and child health outcomes in low-income and middle-income countries. Younger mothers were more likely to give birth to babies with low birth weights and shorter gestational periods, while older mothers were more likely to have children who were stunted and not able to complete their education. Additionally, both groups of mothers were more likely to have children with elevated blood sugar levels as adults. This article was authored by Professor Caroline H.D. Fall, D.M., Harspal Singh Sachdev, M.D., Clive Osmond, P.H.D., and others.


Bernie Sanders was asked about his supposed activism for open borders and since he does not support open borders since that's a straw man He shot down this notion that he supports the idea of open borders This is what he had to say specifically How would you deal with the social services connected to with Opening the borders such as health care medical medical care Who do you think is suggested in opening the borders well that you're an activist for opening for no I'm not afraid you may getting your information wrong. That's not my view. Okay. I apologize. Thank you. I Think what we need is comprehensive immigration reform That is not simply you're quite right if you if your point is you open the borders my god You know There's a lot of poverty in this world and you're gonna people from all over the world And I don't think that's something that we can do at this point can't do it So that is not my position now initially when I saw this video I didn't think anything of it because I think it's obviously the case that Bernie Sanders does not support open borders, however mainstream media along with Neoliberal centrists are trying to weaponize his answer and turn it into a thing and there are plenty of examples of them doing this But let me just show you this one here from max boot who says Bernie Sanders is truly the Democratic Trump So understand what's happening here back in 2016 when Hillary Clinton Reportedly said that she supports open trade borders. She was attacked because she was quoted as saying Open borders now people were taking her out of context because she wasn't saying I support open borders with regard to Who we allow into the country I support open trade borders It's basically the hallmark of Neoliberalism So that was a controversy because she supposedly supported open borders But now it's also a controversy because Bernie Sanders Doesn't support open borders. So really what this demonstrates is that there is absolutely no consistency whatsoever from the mainstream media and centrists because Suddenly we're all supposed to accept that it is the correct position to be in favor of open borders because Bernie Sanders is against it Now are there people on the left that actually do support open borders? Sure, but it is a fraction of The aggregate left but by and large most lefties most socialists that I know do not support open borders Is it in an ideal that we can strive towards one day? Sure I think in a perfect world in an ideal situation open borders would be fantastic But currently when global capitalism reigns supreme When we already see open borders for trade for capital for war I think that adding human beings to the mix would simply open the doors to more Exploitation so even though lefties like myself can philosophically say one day open borders would be great I think a lot of us most of us have this position that open borders currently under the current International system would not be something that we support because it's just not Pragmatic it would lead to more problems and even if people make a moral and philosophical argument in favor of it Those people are just the small minority But I watched a video from Kyle Kalinske you talked about this and I think that he points out a really important thing that we see Happening all the time with regard to Bernie Sanders what they're trying to do is weaponize this issue against Bernie Sanders and Since oftentimes Fox News and the right have to strum and the left since they don't really have a Substitute rebuttal to the policy arguments We make since there's really not that many people on the left who currently support open borders What they have to do is they have to try to go the left into turning against Bernie Sanders So we then attack him for saying he's against open borders so that way they can then say ah ha I told you that the left was in favor of open borders.  Do you see how far left and unhinged they are now? This is the modern left that is exactly what they're trying to do And I think we need to be savvy enough to acknowledge the nefarious agenda that people in the mainstream media and the right and Centrists all have because they want to take down Bernie Sanders They're trying to use this as evidence to validate the straw man that they've created now There are legitimate criticisms of the way that Bernie Sanders answered that question even if I personally Support more lax immigration laws and I think we need to do what we can to reduce the barriers that prohibit freedom of movement I do worry just from a foreign policy perspective because what did the Bush doctrine do it? Essentially tried to get rid of borders when it comes to war. It said we are allowed the United States We can unilaterally go wherever terrorism is and we don't need to get permission from the United Nations We don't need to get congressional approval the United States executive branch. Can unilaterally go wherever there is terrorism? Which essentially gives them the green light to disrespect borders now when it comes to a country like Pakistan and the reason why I'm in favor of borders Having borders having a nation-state Committing to this idea that we respect the sovereignty and territorial integrity of other countries is important because that's what? bolsters Pakistan's legal argument because we're doing drone strikes in Pakistan's backyard and Their courts have ruled that these drone strikes are illegal and they are so even if we don't recognize Pakistani law as the United States will objectively speaking they're illegal We are not allowed to be conducting drone strikes in their backyard and we are terrorizing Pakistani civilians if you read articles I actually wrote a grad paper about this The psychological toll that our drone strikes is having on individuals in Pakistan is really disgusting Whenever it's sunny outside children are afraid to go outside because that means that there's gonna be more drones patrolling the skies They hear the buzzing they have PTSD because of it they know people who were bombed or injured by drones and We're terrorizing these people. It's horrible So the reason why I think that borders in this day and age are important is because that imbues Pakistan with this legal authority to say we do not condone what you are doing and you're not respecting our borders now I would love to say that we're able to disentangle the human aspect of borders that is people moving across borders and the war aspect but currently there's just too much Unforeseen consequences that could come up that could go wrong that leads to human beings being exploited even more Which is why I just think that this is Pandora's box But with that being said as I stated do we do what we can to reduce the barriers that exist that currently prevent the freedom of movement? absolutely because I believe in fairly lax immigration laws and I think that people who were impacted by our country's imperialism should essentially be given an Exploited immigration process So if you're from Iraq if you're from Syria and US imperialism has ruined your life Then I think that we should hear your case first We should prioritize you and we should make sure that citizenship for you is a priority So I do think that working within our current Conception of what a nation-state is and abiding by borders We do what we can to allow for the free flow of people across borders if they want to explore the planet that they live on But at the same time I don't support this idea And I think that Bernie Sanders even if he probably could have worded this in a better way Open borders is functionally something that is going to do more harm than good It's basically a right-wing ideal because we already have open borders for capital and trade and now war essentially But if we open up borders for the movement of people even if that is philosophically and intrinsically a left-wing ideal in It's application it's gonna serve the interests of right-wingers and libertarians and global capitalism more than anything So this is what I'll say you can disagree with Bernie Sanders here You can disagree with him semantically but by and large don't take the bait and don't try to give the right the Ammunition that they're looking for to demonize the left There are some people online that are trying to take the bait that's being set by Sandrists and neoliberals who are trying to find some way to outflank Bernie Sanders from the left Even if they don't genuinely agree with that left-wing ideal, but like max boot who's an anti-trump Republican He's a right-winger. He's saying look lefties Bernie Sanders isn't lefty when it comes to open borders And it's incredibly disingenuous and I want people to be more savvy and acknowledge that Outflanking Bernie Sanders from the left is something that we need to listen to from good-faith actors and not bad-faith actors So if I say Bernie needs to do better when it comes to drones and he needs to have a better response to this question about Drones and what he would do as president. That's me being a good-faith actor and actually challenging him Genuinely from the left but to listen to people like max boot who's challenging him from the right and is jumping to the left To hit him from the left you've got to acknowledge that this is all part of an underlying agenda to de-legitimize him because he is the front-runner It's now currently the case that mainstream news outlets are acknowledging rightfully so that he is the front-runner So you're gonna see this more and more They're gonna take whatever policy position they can outflank him on the left from and try to get him to look bad Don't take the bait you can disagree philosophically But acknowledge that most people on the left have a real Substitutive argument as to why we're against open borders currently you can disagree with that and so argue for that position But don't take the bait now since I showed you an example of a bad-faith argument from Jennifer Rubin I put that up on the screen I do want to show you an example of someone who's a good-faith actor who supports Bernie Sanders Who took issue with the way he answered that question because I do think that this is a more nuanced way you should respond to Bernie Sanders if you disagree and Not basically pounce on him in a way that the establishment wants you to so Daniel Denver Who is a Jacobin writer says Bernie's comment on open borders was bad? It was politically unnecessary It played into a right-wing nativist trap and it was deeply misleading Immigration flows from Mexico for example have never been primarily shaped by border enforcement Rather these flows have been the product of political economic realities in both countries including migrant networks slash pathways shaped in significant part by US capital Capital only favors open borders for capital not for people the history is clear the advance of neoliberalism and its opening of Borders for free movement of capital has coincided with the brutal and lethal hardening of borders for the third world workers That's not a coincidence. This serves capital twice it a foments a segmented labor force ripe for Differential exploitation and be it creates a useful scapegoat for the misery capital imposes Bernie needn't call for open borders though that like worker control of means of production is my goal The open borders question is often a misleading one because it presupposes that there are only two options Zero border controls or today's dystopian reality of border militarization Bernie can demand a more open border without demanding open borders now when Bernie is asked about open borders He needs to respond wrong question in the last three decades We have nearly quintupled the size of our border patrol and built hundreds of miles of border Wall of a border wall a measure that I voted against in 2006 in doing so We have militarized the border beyond recognition Which has caused thousands of migrant deaths in the desert and harmed millions in borderlands communities people who have told me that They don't want to live in a police state and don't want to be cut off from their Mexican sister cities to which they have such deep Long-standing social and economic ties. We have trumped today in part because we have had decades of scapegoating Undocumented immigrants for the harms caused by an economy and government controlled by the 1% for their excessive benefit It's no coincidence. NAFTA was accompanied by a massive crackdown on illegal immigration Roman manual put it clearly to Clinton in the 1996 memo the US They believed had to crack down on illegal immigrants to quiet opposition to free trade And so we must demilitarize the border and ensure that it is open to asylum seekers fleeing economic devastation and violence a situation created by our country's policies in Central America and with regard to Mexico They are our next-door neighbor and US business has for more than a century relied on recruiting and exploiting Mexican migrant labor it is a moral and hypocritical to suddenly say that Mexicans our neighbors are not welcome here People say that Mexicans should come legally Do you know how many years a Mexican relative of US citizen has to wait to do that? Mexicans need sufficient legal pathways to migrate so they can reunite with their families if you are against unauthorized Migration you must provide Mexicans with the way to migrate legally We must push Bernie, but he is already easily the best Democratic primary candidate on immigration He voted against 2006 Secure Fence Act unlike Obama Clinton and Biden He voted against the 2007 reform bill that included Recony enforcement and guest worker program voted against 1996 Anti-terrorism and Effective Death Penalty Act which greatly expanded power to detain and deport He was one of just 87 members of House to vote no on catastrophic illegal immigration reform and immigrant responsibility act Bernie stood in solidarity with Central American revolutionaries during the 1980s It was the US backed dirty wars the murderous and even genocidal destruction of these revolutions That is at the root of today's migration crisis Bernie must do better on immigration and he can so I think that this is The perfect example of a good faith critique of Bernie Sanders argument because after not really thinking much about his answer I do think that Daniel makes a phenomenal point that Bernie Sanders does need to come up with a better response If he's asked about this question because I think that more nuance is Completely appropriate for this type of question because this is a very loaded question And it's a controversial topic that is ripe for mischaracterization and straw manning but to be fair to Bernie Sanders I don't think he was prepared to mount a comprehensive defense as to why we should have closed borders I think he was just shooting down this notion that he supports open borders because he doesn't that's a straw man So I'll leave it there


This video is brought to you by CuriosityStream. Go to curiositystream.com slash polyphonic to get 30 days of membership for free. On April 16th 1972, the Apollo 16 mission launched. It would become the second last Apollo mission to land on the moon, though nobody knew that at the time. At the time, it seemed a future in space was a foregone conclusion. It seemed that the moon was a stepping stone on the way to Mars and beyond. And that's reflected in a song released just two days before that penultimate Apollo mission. On April 14th 1972, Elton John released the single Rocketman, a song speculating on stardom, sci-fi, the human condition, and mankind's future in space. Let's take a closer look. To get to the earliest origins of Rocketman, we need to look back even further. Before Apollo 11 landed on the moon, before Yuri Gagarin's first spaceflight, even before the launch of Sputnik, the first satellite, the origins of Rocketman go all the way back to 1951 when even science fiction was still developing as a genre. That year, Ray Bradbury released a collection of short stories called The Illustrated Man. One of these stories was The Rocketman, a story about a space pilot. In the story, flying a rocket isn't too much of a rarity. It's just another profession, the profession of the narrator's father.  When you're in space, you yearn for home, but when you get back home, you yearn to be out in space again. Something about this story caught the eye of Bernie Topen, who wrote songs for Elton John. He was fascinated by the image of the astronaut as a mundane job. But Topen wasn't actually the first songwriter to be inspired by Bradbury's story. He has admitted that he took the concept from the psychedelic folk band Pearls Before Swine. Their song, also called Rocketman, was a much more faithful adaptation of Bradbury's story. Topen's take on the story changed the protagonist. Instead of focusing on the son like Pearls Before Swine, he focused on the Rocketman himself. He started to picture what it would be like to be an astronaut in this future. With this in his mind, he came up with the now iconic opening line of the song. Topen put that line in his back pocket and sat on it for a few months before developing the song in full. In the lyrics, you can see how Topen expands on the boring aspects of the job. This isn't what we picture astronauts as today, and it's definitely not what we picture them as in the 70s. Our main character isn't a scientist, he's just a man living from paycheck to paycheck. But the song is more than just the story, and that's because Topen and Elton John had a unique relationship. Topen would write all of his lyrics and then bring them to Elton John who would write the music. This is what gives Elton John's song such emotional power. The music is built around the world, it's built to play into the power of the story. Given the image of space, Elton John created a wide open arrangement. He also put emphasis on those opening lines which set the scene for the entire song. In fact, this is one of the only hits of Elton John's entire career that begins with singing right away, there's no piano phrasing before. When you get to the chorus, Elton John uses a choir of backup singers and ascending slide guitars to reflect the lyrics. It feels like you're soaring out into space, floating in the beauty of the universe. But in John's performance, he has a pained loneliness. He embodies the sorrow of the Rocket Man. This isn't just good storytelling, the life of the Rocket Man isn't just sci-fi, it also serves as a metaphor for the life of the rock star. In its own way, the stage is just as lonely as outer space. When you're on the road, it's a dozen different venues night after night, it all blurs together. Rocket Man even sings of burning his fuse out, familiar territory for any rock star with endless shows and endless parties. This song expresses a human side of Elton John. He's not the man people think he is. He's an idol that people look up to, but at the same time, he's just a person working his job. And just as the wonder of space can be lost on someone who's always flying, the wonder of performance can easily be forgotten in the day-to-day and mundane repetition. And that's one of the core messages of Rocket Man. It's all too easy to get caught up in the mundane and forget the fantastic around you. The other message of the song is of course one of loneliness. Filmmaker Majida Dean channeled this loneliness when creating the 2017 video for Rocket Man and created a whole new interpretation of the song. In that video, the Rocket Man isn't a performer or a space pilot, he's a refugee taking a perilous journey to a strange land and reflecting on those he left behind. And that's the power of Rocket Man. It's a wondrous sci-fi piece about the future, but it's also just about the everyday experiences of any human being. Everyone can find something to relate to in it. And that's why the song lasted through the 70s. It lasted through the end of one wave of space excitement, all the way to another. Now space is once again looking closer than ever. We have our eyes set on Mars and beyond. And maybe that means one day soon an astronaut will be stepping out the door and saying goodbye to their family for a long lonely flight. And they won't be able to stop themselves from thinking it's going to be a long, long time. If you want to see just how it is that we're going to be sending astronauts to Mars in the coming years, you should check out Mars The Journey on CuriosityStream. That documentary looks at the challenges we must overcome to get to and settle on Mars. If you like that, Packing for Mars looks at how scientists are working on technologies that will make it possible to live, work, and research on Mars once we're there. And that's just a start. CuriosityStream is the first subscription streaming service dedicated to helping us on our lifelong quest to learn, explore, and understand. They offer 2000 documentary titles on everything from physics to philosophy, from art to engineering, from the past to the future. You can try it out for yourself by going to curiositystream.com slash polyphonic and entering the coupon code polyphonic. By using that code, you'll get 30 days of membership for free and you'll show them that I sent you and support my channel. After that first month, CuriosityStream is just $2.99 a month. There's so much knowledge waiting for you, so please just give it a shot and remember to use the link in the description and the offer code polyphonic to let them know that I sent you.


Hello, everyone. Hello, Zafir people. My name is Pavel Hibner. I'm CEO and co-founder of Hard Video. Today I will introduce the Chester platform, which we have had already for a few years, and the platform is targeted for industrial IoT applications. In Hard Video, in general, we create open embedded platforms, and Chester is like our flagship product. Let's get started. So Chester started actually, it started a few years back, when we got a request from customer to create an NB IoT thermometer for the forest to correlate and monitor the occurrence of the bark beetle. Back then, we became partners with Vodafone and one of the first adopters of NB IoT technology in the Czech Republic. And yeah, on the picture, you can see my son. He's super excited with the running machine. But of course, what is more exciting is the yellow circle, which is Chester. We have installed together in the forest. And where we are today, Chester is like a general multi-purpose IoT platform that is used by partners all around the world. And this talk is targeting anybody who is enthusiastic about connected hardware, about firmware engineers, and there will be a demo, so anybody who wants to see things in action. So a little bit about Chester. We usually represent it as IoT hardware endpoint. You can see here in the picture that it consists of the yellow board, which is the main board. It is a low-power platform, so it can be powered from batteries for years, a bit more about it later. And it is very extensible. And we usually pick it in a rugged IP67 enclosure. And our target customers, they are partners. We are targeting B2B and we provide full sort of customization for that, UV, label printing and so on. And in the end, the process is like if you are creating or specifying your own car, you can tell us what kind of features you need, what kind of interfaces, and we make it tailored for your application. So the main board features, because this is the core, and it's just not about this board. We have lots of extensions, but let's fly through it. That is dynamic antenna system. There are two RF switches over here and here, which are multiplexing between the Lora 1 versus cellular modem, and another RF switch, which is multiplexing between internal and external antenna. That is the cellular module on its own. We use Nordic NRF 9160. There is Lora 1 module from Murata. We use some supercaps on the board. That is because usually here in the middle, we can have the battery holder and the supercaps are helping to survive the current spikes required for LTE. There is of course NAL SIM card holder, the 3 core LED, I2C terminal block. The terminal blocks, there are two of them mapped to the extension modules, speak about it later. And there is hardware one wire, bus master port, and on board I2C digital thermometer, and the Bluetooth module, which is the main one, we use again Nordic NRF 52840. This one is hosting Chester SDK, and this is what our customers are using to create and craft their applications. And 8 megabyte of Nord flash. Recently we made it work that we can flash the main application firmware from external SPI flash. The U-blocks GNSS module supporting GPS, GLONASS, Galileo, and Beidou, the push button, and again I2C peripheral, the 3-axis MEMS accelerometer. So that was the main board flyover. The main pillar of this platform is of course the connectivity. So for short range, we have Bluetooth that you can use for diagnostics, for reconfiguration, for firmware upgrades. I mentioned seller, so we support NBIOT and CATM. And for 868 megahertz or 915 for the U.S., we've got Lora1 module. And recently we added to the family of Chester Ecosystem, the satellite connectivity through AstroCast technology. That one communicates in L-Band, and it's amazing because we have a few customers in agricultural business, so Chester platform can now communicate from anywhere in the world. And I've already spoken about this GNSS connectivity supporting those four standards. You can see that there's a lot of radios on the board. But of course, in order to optimize the cost, we provide several main board variants. So yes, we have a fully-fledged one, but then we shrink it down to whatever the customers need. The second very important player is hardware extensibility. I have put a few pictures of the modules, but trust me, we have far more. We have like almost 20 modules now in the family. We have like three types. We call them the backside modules. Those are the guys, red guys on the right. And they define actually the functionality of the terminal blocks. If you remember, there were like two big terminal blocks. You can use two of these backside modules as the extension. And we provide interfaces like RS-45, precision analog inputs, all kinds of DC-DC converters. And we are usually adding the new additions to the family based on the application requirements. So these are the back sides. Then we have top cover modules. I've mentioned the satellite. It's one of the examples. But we also have recently added this display module, Chester D1, which offers the low-power LCD with capacitive touch buttons and many others. And the last, but not least, usually if out of the box, connectivity and mechanical constraints for this 130 by 180 millimeters enclosure is not sufficient. We are creating these green carrier boards with multiple interfaces, pluggable terminal blocks and so on. So still the base is clear. It's just the main board, which is certified and to which makes the whole ecosystem extremely versatile. The third pillar is low-power flexibility. We use 7.7 amp hour lithium-tionyl chloride batteries which can energize your application. Let's say we have a cellular application which sends data every half an hour. The typical question current is like 230 microamps, including Bluetooth beginning. This doesn't seem to be like the lowest ultra low-power number, but we have to also take into consideration there is overhead on the supercups, the leakage, some DC-DC converter, idle current and so on. But altogether, including NBIOT idle modes, it's like 230 and it will provide you with this battery of like three years of battery lifespan. And there is flexibility. So we have hardware logic which can prioritize if you have multiple available power sources, whichever goes first. Of course, the battery sources are prioritized. So anytime you connect solar photovoltaic cells or AC-DC converter, whatever, it's just used in the first place. So also we have a rechargeable module, we call it Chester Z, which is like one of the top cover modules. And that one provides like wide operating range and you can connect solar panels to it. It will charge the lithium ion battery and you can therefore use it in the night and day shift mode. So it has very low maintenance. However, if you go with primary battery and one is not enough, we also have solution. So we use carry boards to just connect multiple of these like in parallel. Of course, you're using shodky diodes to prevent any overcharging of the primary cells because that's the danger zone. And for example, this enclosure I have here on the slide, that one provides 112 amp hours. So we have a customer who actually asked that they want to send data, I don't know, every three minutes. I don't remember exactly, but they needed like five years of battery lifetime. So yeah, this was the answer. Each of those cells in this case, they have 17 amp hours. We have lots of real applications. We have been deploying this platform for a few years. This is like a famous application. This man in the forest became quite famous on the internet because we use it everywhere. And we cooperate with Vodafone in the UK. We monitor the environmental and impact of climate changes on the tree growth. So this trip you can see around this trunk of the tree, it's called dendrometer. And it provides proportional voltage as the trees are growing. And scientists are using all kinds of data that we are gathering like soil, moisture, temperature, environmental conditions to correlate like how this affects the tree growth. This is my favorite because we have a few partners that literally establish their business around Chester platform. We have a company called Stato Test and they are using Chester platform to monitor the inclination of bridges in very long term. And therefore they are sort of providing the predictive maintenance for bridges. And they have built all ecosystem like back ends, front ends and of course notification systems. And they basically reshape the product that is their own. Again, Chester is a platform to help the partners to build their own products. Also another partner, Adastra. Chester works well in retail for digitization. So we gather the real-time data from these so-called smart shelves and cooperate with some famous breweries to like monitor exactly how the cans or the beers are taken, which one are prioritized by the customers. And Chester monitors like 1000 pixels in the shelf and reports those data to the cloud platform where our partner Adastra creates their logic on top of it. Utility segment, this picture on the left, it's called cathodic protection monitoring. If you are distributing gas, you have to somehow protect these gas pipes against corrosion. And they do it the way that there are like negative voltage generators. And these have to be ensured that they are checked, that they generate that small like minus two volts negative voltage. And usually what they do, they send technician in the field, they measure the voltage by multimeter. Now and then they check it, they write it maybe with pen and paper. And of course this is something that can be improved. So we are working with one supplier for this utility segment and to use Chester again to using galvanic isolation module to monitor this voltage that it works. And things like cabinet environmental monitoring and similar. So in the world of IoT, you will find lots of overlaps. And we discovered that Chester is often used for similar use cases. This is why we have brought this concept of what we call catalogue applications. And we have like 10 of them today and it's growing. It uses the same ecosystem, the same Chester SDK running Zephyr. It's using this almost the same hardware foundation. And it's only about different application business logic implementation and different set of peripherals connected to it. I have an example here. This is called Chester Push. We use heavily in production for the so called unknown system. So for example if you want to reduce the reaction time when something goes wrong in the production line, you can have such a device that will change the state. We can label print some states for the requirements of the customer and they will immediately receive the notification and they can react to it. We have one installation in Chukor Auto where we have this bar LED strips in the hall like at the ceiling and they immediately know which station has some issue. That one was using Lora One. So we have all kinds of application for different purposes and we offer them like off the shelf and that implementation is open. So anybody and the developer that starts to create their own and something is similar, they can use this reference application as the boilerplate and start from there. We are coming up with a new one which is quite exciting because recently we have finished the implementation of the two-way communication and we are introducing the catalog application Chester control which will allow not just control of the relays but also quite advanced parametrics of the inputs and defining some logic between the inputs and outputs. And yeah this is what we are about to expand next to the developer's offering of the Chester. We have these ready-made products which are also immediately available in the stock. So next of course it's about ecosystem. We are like one puzzle but of course we built our foundation on top of the others as well. We cooperate with Nordic as I mentioned. It's our silicon vendor for Bluetooth and cellular and they created NRF Connect SDK which is the core foundation for Chester SDK and they inherit of course Zephyr which is I would say the best operating system ever for microcontrollers and we also have some technological partners such as Battery Check which is a vacant company, they have start-up and they are doing advanced battery analytics and using neural networks to analyze the state of the lithium battery, their state of health and they can again provide some predictive maintenance. They are now deploying systems which are related to safety critical applications for systems that are like sort of helping and preventing in fire emergency situations and Battery Check is using Chester to like observe the current from the battery, temperature, voltage and other conditions. And that is Sternum which is our new technological partners. Sternum is an Israeli startup which sort of provides very comprehensive software stack on the cloud and also for as an agent for the microcontroller and tooling which helps to basically adjust your application so and prevent cyber security threats before they happen. It's very advanced, they also provide traces, logging and the core idea is to make your devices in the field as robust and secure and safe as possible. Our connection to Zephyr and probably you know so it's more targeted now for anybody coming new to the Zephyr ecosystem. Zephyr was designed from the beginning for IoT devices with low power in mind, with security in mind and it integrates with vast ecosystem of projects and we jumped on it simply because we already used NRF or Nordic ecosystem before and Nordic has switched fully to Zephyr a few years back and we have followed and we like it because we realize that this is like another step, another ecosystem that encourages true portability and usability of your software components that you implement. Of course there is always some learning curve, it's not the easiest ecosystem to jump into but it improves quite a lot. There is always enhanced documentation and more and more resources are coming there and there are more and more use cases so there is way more inspiration than when we came to the ecosystem about three years ago and despite this still some leap to jump, I would say it is definitely worth and it's a good protection of your investments and true code in the future. How Chester looks from, it's called a firmware landscape. When you look at the board as an embedded programmer engineer you want to see like what are the core components that you care about. There are three, those two right, they are the Modems, Seller and Monata and they are connected with the application Bluetooth SOC through UART. There is traditional AT command style. For Seller Modem we are using reference implementation from Nordic called serial LTE Modem which always gets improved and on the board you will find three standard nine pin debug connectors and Chester SDK runs on the Bluetooth part. The software stack as you know the WEST workspace is composed of so many repositories. Luckily the WEST tool makes the management of these very easy and this is the like onion like structure but of course those folders are sitting next to each other. We start from Zephyr and RF Connect SDK inherits that as a sub module we inherit an RF Connect SDK log to some specific version and you can go on and on. And another great thing about Zephyr is hardware obstruction. So I always like to use this example maybe remember when I talked about those carrier boards sometimes we need to move this LED on the carrier board in a bigger enclosure to another spot. So this is where Device 3 really helps to abstract the hardware definition and the implementation and transferring the LED to a GPIO expander sitting somewhere else was as easy as changing a few words and applying the Device 3 overlay. We usually do it through the shield subsystem and I have changed just a few letters and magic happened. So this is why it's great. Modularity is another cool feature of Zephyr. It's Zephyr I would say it's like a framework which is almost like enforcing that of course you can always fight it back but why would you? And the goal is to guide you and keep true independence of the blocks and avoid cross-dependency. Here on the right you can see as the very minimalistic snippet of Kconfig that you can put in your application folder. You can introduce a symbol, state that it's a boolean, give it some default values and maybe when the symbol is selected enabled it can imply like the selection of some other symbols. And then you need to of course if you have Kconfig in your application structure you need to also instruct the Kconfig system that it should continue with Zephyr standard Kconfig processing. And in your PRJconf file which defines like how those options are used you can just use config underscore the symbol name and give it the selection. So that's one way like how you can embrace Modularity is to introduce these symbols and then use them later in CMake lists and apply the ad sub directory which is standard CMake command with underscore if that and reference that symbol. So this is the way like how you can have lots of modules in your project, in your subsystems and still keep it separate and minimalistic. Zephyr's philosophy is going always or being explicit. It starts from zero and you are adding new features, enabling new things on top of it. There is another nice neat thing that you can use Zephyr modules and that is like standard mechanism. You can add the modules folder in your application directory and the build system knows and you don't have to even alter the CMake file. You can keep things stick together. You can just add Kconfig CMake lists and your module implementation and this will be automatically included in your project. Next is coherence. This is another great thing because I was talking about avoiding cross dependencies. I talk about it here like what is the cross dependence if you have some let's say main.c and you are including lots of header files, every of those modules have some init function and they are calling one after the other. So Zephyr has mechanisms how it can save you from that. Of course, you will not reach 100% cross dependency avoidance probably. It's like holy grail. On the other hand, you can go with the sub modules and subsystems as much as possible thanks to, for example, sys init mechanism. So if you have an init function, you can implement it like you are normally used to and now there is this red circle. Does anybody know why I'm circling the void parameters of the init function? Okay, I'll tell you. In the past, this init function, it has to have the pointer reference to a device structure. This is like the same overlap if you are implementing Zephyr driver. The parameter has to be there. With the latest release 3.4.0, they have made enhancement because it didn't make sense to enforce the developers to use a reference to devices. You can now avoid that because it will also match this like unit implementation and you can use like this format without this written on parameter. And you can just use this macros in it, give it the name of the function, tell what is the Zephyr boot stage, what is the boot priority, which is number 0299. 0 is the highest priority, 99 is the lowest. And that's it. You just include it in the build and Zephyr puts the reference to this function to a table and based on the priority, it will be automatically called for you. Great, you don't have to be explicit about calling init. And of course, you can use the build time constraints like build assert to actually make sure that if you are referencing something in your init function, that that particular module will be initialized before you. So usually the practice is that at the end you insert build assert and you define the constraint that the priority of your module is lower than the other one you are referencing. Also we have apart from init other things that are really helping this coherence which is logging. You can see here on this line this log module register where you define the logger module name and what is the minimum level. So on each of those modules in your application you can define individual log levels. There is also shell. Maybe you have already worked with it. I will show it in a bit is that you can create your own custom commands and again they can be coherent to the given C file implementation. And settings very often you need to store some parameters, some data. So as I said, again it's ready to keep it in the same place related to the module all together. So let's do a bit of demo. I will switch now to the terminal. And I will show here on my table I've got just the main board. It's a special variant, the dev kit because here from the bottom we have the spring terminals and you can swap and replace those extension modules which are defining the functionality for the terminal box. And I have connected segre jailing and power profiler kit from Nordic. Raise your hand. Who uses power profiler kit? Is there anybody? Okay, one, two, three, yeah. Well, guys, if you are a developer this is like really an available tool. It costs like $100 approximately. And we will start from there because the purpose of the power profiler kit is to energize your application and you can also use it to trace the power profile of your software. So when you connect to it, using this power profiler which works for all the systems, you can set your target voltage. Now I'm emitting the battery so I have 3.6 volts. I can switch it off. I can start like tracing the power profile and I switch it on. You see that something is going on in my application and it's powered. I can stop it. I can zoom it. I can analyze what is the average power consumption and what we usually do and we create some new implementation. We let it run for a few hours including all the new bands or whatever transmissions and we calculate the average current over the long course of time and therefore by simple division we can estimate by capacity of the battery what would be the approximate typical lifetime of the given implementation. So that's the power profiler kit. We actually distribute it as part of the Chester development kit including the J-Link. And now let's build an application. We will not build it like compile it but we will flash something we have prepared. Let's prepare application that is transmitting one wire thermometer temperature and sends it over a cellular over NB IoT network of Vodafone in the Czech Republic and we will see it, see the data in the cloud. Now I have moved my cable so it probably is connected. It will still work. So I have to reconnect PPK. Program now. So let's start it again. Yeah. Okay. Let's flash the firmware. The J-Link is connected and it's not just about hardware in hardware. We invest a lot into tooling and we have created the PiPay package, Python package called hardware. It has many modules. One of them is Chester and it allows you to do all kinds of things like flashing firmware, uploading firmware to hardware cloud, opening console. And now I'm flashing firmware with this weird set of hex characters that is actually like the secret that is generated for you in hardware cloud when you upload the built artifacts. And this is something that for catalog applications you can find in our documentation. So we have docs.hardware.com and if you go to Chester section and catalog applications and scroll down a little bit we have the overview of the catalog sets and then there is the list of firmware variants that are there for these applications. So there is a version, there is this identifier that I'm using right now in the shell and I'll just trigger the command low voltage. Maybe it's again connected. Maybe the target. Maybe the cable between PPK. Oh thank you. Yeah. That was it. So let's go back and try to flash it again. So now it's erasing the flash. Of course if the firmware is not downloaded locally in my cache it will download it and later it doesn't have to. Now it's flashing the memory and after verification we will start another sub command of this hardware package which is called console. So when I start it I will see this two panel terminal friendly app which on the right side provides the device logs. We have color differentiation for all kinds of local levels. There is four in Zephyr, it's info, warning, debug and error. And on the right side I've got this interactive shell. So I can use standard Zephyr shell commands that are built in there but also we have introduced a few. From standard Zephyr commands you can for example ask the kernel for time or you can do things like kernel reboot called and reboot the application. So on the right side you will see it starts from beginning. And you can easily introduce your own. So for example in our Chester SDK we have this config command. So let's check what it offers. So config allows you to for example show the current configuration of your project. And in command line style it dumps all the parameters that are there. You can copy paste it, you can share it and somebody somewhere else with the same set of commands can replicate the same settings for the given firmware build. You can also change it. However if you are changing now these parameters nothing is actually applied until you use config safe which is like a commit. It will write all the parameters to flash and it will start fresh. So you don't have to manage or implement the change management. For this IoT application you rarely change their configuration. So let's keep things simple. Just it's more important to have things atomic. So you keep changing the parameters as much as you like once you are the config safe and it will reboot. Alternatively you can do config reset which will trigger the factory default reset. Okay there is another command which is called info. It provides this command info show. Sorry info show. And here you can see the vendor information like serial number, the claim token for registration to the cloud, Bluetooth address, what is the hardware variant, hardware division and so on. And on the right side you can see already some things going on in the application. Actually the message was just sent and we will use that serial number 7984 to find it in hardware cloud and see the messages from it. So let's switch to the browser and open hardware cloud. This is the left one. Is it? This one looks like it's the button application. Yeah. So yeah this is 984. So a few words about hardware cloud. It's like our SAS which is optional. We don't enforce anybody using it but it's so much easy for our partners, for integrators to jump into it and focus on the added value of the data on the JSONs. It's not application platform today so we don't do dashboards, widgets, nothing like that. But the main purpose is to actually integrate and allow access through REST API or you can configure web hooks to immediately push the data as soon as they arrive from devices to your own services. And I can see that there is a message 1155, I assume we have to refresh it. Yeah. And there is 1243. We can see and explore the JSON structure. And you will see some envelope that is quite common for all those applications which are adding some diagnostic information. You can see some same stuff I just shown in a console from Info section. You can see uptime, you can see network parameters, the main number of the modem, IMSE number of the same IMSE, some network parameters, some onboard data, thermometer, accelerometer, and the useful data that you care about. There is this one wire thermometer and you can see the measurements which come as array with timestamp and aggregated values of minimum maximum average and median. So you can process it and push it to your time series database and below JSON, you will see the raw data. From this raw data, we have processed this JSON. Of course, we are talking about low power devices with optimization over NBOT and UDP and stuff like that. So we don't transfer JSON, we transfer seabor and we upload the so-called codec where we have like a binding between the integers and the dictionaries and also some metadata like how shall we process the values that are coming after the keys like division, multiplication, whether there is an arm and so on. And this way, we don't have to alter our backend processing pipeline, we can have a generic and device can push any arbitrary structure and if it uploads the codec, the hardware cloud can render JSON in any way the developer desires. So this is hardware cloud and I think that's the main part of the demo. I should have also mentioned that we've got Bluetooth application, hardware manager that is available for iOS and Google Play. And that one allows you to flash firmware to the units or open the console that I'm just showing you on the left side, this interactive shell and do it through Bluetooth. We don't have enough time to show all the tooling that we have, it's just to mention that this is the part of the ecosystem. Okay, let's jump back. So we are trying to be also active, proactive in Zephyr development and I've connected SDK, we have done ourselves a few contributions. I would like to also raise a special thanks to Tomas Strenger and Kaspar Friedrich who have contributed a lot to Onewire ecosystem. We were pushing this quite a bit and we have lots of applications in the field. Now, using this Onewire, it is well tested, it is fairly new, it's been around for about a year, merged in the main and I encourage you to test it. And Kaspar has also made drivers for the hardware Onewire bus masters. We have one implemented on the Chester main board and that is like a bridge from I square C to Onewire. The advantage for hardware Onewire bus masters is that you have the so-called active pull up. So you can reach much longer distances, communication distances than if you do just GPI autoglink. I know that one is I'll say more cost effective but it is I would say a trade off for many aspects. In the future, because we use a lot of shields, you have seen that we have many catalog applications. Each of the catalog applications, it's using some variants, depends what you connect to it. So we are using shields. It's a well established ecosystem in Zephyr but it has some limitations and recently Zephyr introduced the so-called snippets which is I would say a good replacement for the shields. It gives you a bit more flexibility and you can do like PRG overlays. Whereas with the shields you have to like the only with Kconfig files and that has some I'll say limitations because as we know Kconfig is one pass-through and it can get you to situations where you will have to explore what is the ultimately the output of the Kconfig if things don't get enabled as you requested. Also we really like the addition of Zeebus. Zeebus is very interesting subsystem to Zephyr because it allows you to do PubSub messaging and again it will allow you to decouple the components even better. So we are about to start testing this and implementing to some of our subsystems. Chester SDK from this Sunday I mean last what happened is open source it's on GitHub that is this Chester SDK repository with a few hundreds of commits and we are actively working on it enhancing it and now it is available to everybody under hardware of five close license which is very pervasive you can share it modify distribute it but of course like Nordic does it under the conditions that you use it with hardware related products but it can be a great source of inspiration because we are using some some corners of Zephyr which are only in the documentation and you don't find like examples references to it anywhere else so we hope that this will help also to others on how to use various things in Zephyr. So everybody can start with Chester Devkit it's got Sega J-Link this special mainboard version for developers a few a few extension modules that are attached to it using magnets like DC-DC converter RS485 extension module and the configurable 4 channel analog digital input module also there is this power profile kit and this is like I would say for any integrator the gray starting point of course it doesn't have to be exactly the Chester Devkit it can be any of our application but Devkit has advantage that it doesn't have super caps because super caps if you have it on table you want to do some power cycling and so on it's it's a burden yeah this is why we have even on the latest revision implemented the white LED from the bottom that this is activated by the push button that is just to make your life in the field a little bit easier because it's quite annoying if you have to wait like 20 minutes when you buy commands activate all LEDs from the from the front side you are waiting like 15 minutes before the LEDs discharged the super caps otherwise you can wait for the whole day long so this power LED will discharge it within like 20 seconds yeah so there's the difference no super caps on Devkit version because also super caps make it a little bit more difficult to tracing down like what your power current profile is currently doing in the software because it's filtering that out all those spikes yeah okay so thank you thank you for your attention we have a boot down there would number 33 so you are welcome to see us and discuss we have a few more gadgets on the table and yeah are there any questions please hello well I'd like to ask how you how do you perform the firmware update for the devices that are already in the field yes today we do it only through Bluetooth but as I was talking about the two-way communication that is like the first stage before we do it remotely this is very desired features you can imagine from all our partners and we have however taken some steps now we have in our chester tree a sample which allows you to build firmware with bootloader that allows for flashing from this 8 megabyte SPI nor flash so that's the first step and we will soon make a breaking change for all our catalogue applications that they will essentially have to be refreshed to using J-Link to change the bootloader to support that and there are multiple steps to coordinate to bring this but technically it should we shouldn't be that far from the goal because as we already have STP API interfaces to push some data from the cloud to the unit and we support bulk transfers so it's basically a few I would say long longer weeks before we deliver this functionality in Chester SDK and my second question is you saw you saw that some firmware that are stored in the cloud how do you use them oh yes okay so I was talking about this hard video Python tool so I'll go to console oh no I have just swapped some of the screens so I'll try to get it back mirror yeah Martin F10 doesn't work control F10 it's right no yeah okay so hard video and if he if he look actually in the Chester commands and we explore the app section there is another subsection called firmware it's a little bit nested now right and that one allows you to upload the artifacts so when you finish there's a fair build this command will actually look into your build folder and depends whether it's built with the bootloader so that is matched dot hex and update dot bin it will like sanitize them create the zip file and using this command you are enforced to use hardware or cloud API token so if you provide this together it will upload the artifacts and it will generate for you this this excellent small token and you will also receive email notification with the build with this so called Chester firmware page where you will also see the QR code and you can use the QR code with a mobile application hardware manager to scan it and flash it so it's like a file less firmware management and our partners are using that because it's simplifying the whole deployment the process so you can like deploy many times a day without hassle sharing attachments emails and so on thank you I want to ask how many devices you have in the field it's actually quite difficult to answer it's I would say between two and three thousand I didn't count exactly because some of them are clear we have them connected to hardware cloud and they are constantly streaming some data some of them are Laura one devices this is the second generation of Chester so I'm talking about this quantity but also we had the previous one which was not open source and we also have quite a bunch of them in the field so generally I think hardware cloud today is has registered like four or five K of devices so any more questions oh yeah we're talking like 50 minutes Jennifer we have time okay good so yeah thank you so much and enjoy the rest of the event


Right, awesome. Welcome to today's session, everybody. Thank you for joining us. We are going to focus on creating a custom template with the site editor. Now, the lesson objectives for today, we are going to look at accessing and using the site editor to add custom templates. We're also going to discuss templates and template parts, and we will also be assigning templates to a page or post using the template editor. I'm using WordPress 6.2 today, and the theme I'm using on all my test websites will be the 2023 theme, and I have not installed any additional plugins. So I just wanted to clarify that at the start. So, custom templates. Let's just talk about that a little bit. Custom templates allow you to use a different design or layout from the rest of your website. This means you can create a page or post template with a unique header, footer, or other page elements. So why a custom template? Well, you might want to create a custom template for an event, a landing page, different types of blog posts, or even have unique styles for different pages on your site. And two examples I'm going to look at today is creating two different templates, custom templates, for two different types of blog posts that I want to display on my website, and the other one is a landing page. But before we look at those examples, I thought let's first discuss the site editor templates and template parts of it, and also just clarify how all of those things work. Okay, so I'm going to jump to my first test website. There we go. And you will notice on my home page, I have a specific header here, and I've got some content, and then I have a footer. Now, my footer and my header was created in the site editor, and I use the page template to do that. And the reason I use the page template is I set a static home page and I set a blog page separately. So therefore, my home page and all my other pages will be assigned to the page template. And the page template will have this header and this footer. So they will all share this header and footer. And I've assigned this template to my pages. But for my sample page, you will notice there in my navigation menu, for my sample page, I wanted to have a different page structure. So therefore, I created a custom template so that the page looks completely different. All right, so let's click on sample page. So when I click on my sample page, you will notice, okay, wow, it's a different header. And I've actually also added a different footer. All right, so this is on the front end. Let's see this from the site editor side. So I'm going to make my way to my dashboard and I'm going to make my way to appearance. And as I said, if you look at appearance, you will see that I have installed the 2023 theme. And we are going to make our way to the editor or the site editor, because this is where we create site structure. Okay, and I want to elaborate on this a bit more. So you will notice you've got templates and you've got template parts. And as we said, we use templates to create a design and structure for pages. You can think of it as a picture frame. It is the frame for your website, like your header and your footer. And the template parts, those are usually your headers and your footers, but you can also create other page elements. So let's open up our page template. You'll notice if you go to templates and you click on page template, you can click on the pencil there at top left, or you can merely just click on the screen and it will take you into your page template. So here is my page template and I've used template parts, header template parts and footer template parts to structure my template. Okay, so here's my header template part and here is my footer template part. And you will notice you don't really see any content here. Let's open our list view. So there's my header, there's my footer, those are my template parts I use to create structure. And if you open up your group block here, you will notice that this is the post content block. So a reminder for folks, we don't add content in the site editor. So we don't add content to our templates. We add the content to a page or to a post. But having this post content block here, it will pull it in, it will pull in the information or it will pull in the content from the page or post that's assigned to this template. Okay, so here is my page template and that's what you saw on the front end. So if I click on the WordPress icon and I go to templates again, you will notice I created a custom template called sample custom template. And if I click on that and then on the screen and if we open up our list view, you will see this is where I added a new unique header and a unique footer. And again, we have the post content block that will pull in the content from the page or post that has been assigned to this template. All right, so let's go to the dashboard to show you how to assign. Oh, no, before I do that, let's just go to templates again. You will notice, let's talk about templates first. You will notice that there are certain templates that are built in and come with your theme. For example, the 404 template, the index template that can display posts, the page template, the single template that displays single posts. But you can also click on the plus icon to add new templates. And you will notice there's a list of templates that you can add. But we are after this one, custom templates. So this is how we are going to add a custom template. And we'll do that later when we look at our first and second example. And the same goes for template parts. You have certain template parts that come with your theme. You'll notice there's some more now because I've already created some. But you'll notice, for example, this footer one, this is one that comes with your theme. And we can see that, yeah, if you go to manage all template parts, you can actually see the ones that come with your theme and the ones that I've already created. And you will notice when you've customized or changed a template that comes with your theme, it says customized below there. If we go to templates, you'll see the same thing. Let's go to templates and manage all templates. And there you will see all the templates that come with your theme. There you will see I've customized my page template. And you will also notice some of the custom templates that I've created. You'll see my name and image there. Okay, so if we go to our page, our pages. So let's look at our home page, for example, because that's the first one we saw on the front end. So if I click on the home page, you would have noticed if we go back, it says front page. And I've got a blog post page. And I did that when I went to settings and I went to reading. You will notice I set a static home page and a blog page. So then if I go to pages, it says front page, blog page. And if we open our home page, we will see in the sidebar, in the sidebar settings, that this page has been assigned to the page template. So if I click on that, it says templates to find the way content is displayed when viewing your site. And this has been assigned to the default template, which is the page template. Now, as I said earlier on, we add all our content here. So you'll see years all the content. And remember, it's going to be pulled in by the post content block in your template. Okay. So here's all our content. We can see that this home page has been assigned to the page template. But we assigned a different template to our sample page. So if we look at our sample page, again, you will notice my content. But now in our sidebar settings, next to templates, you'll notice I have assigned this page to the sample custom template. So therefore on the front end, this page will have a unique header and footer. And just a reminder, if we go to the front end, so here's the header from your page template, your footer from your page template. And here is the content being pulled in by the post content block. And if I go to my sample page, same thing. This page has been assigned to my custom template. And now it's got a different header and a different footer. And the content is still being pulled in by the post content block. Okay. So that was a bit of background about templates, template parts and custom templates. Are there any questions at this stage before we look at some examples? Is there anything that I can clarify or any question that you have? I will jump over to my next test website so long. Okay. So as I mentioned earlier on, that for my first example, I want to create two custom templates to display different blog posts. All right. I see there's a question. When you create a custom page, do you have to manually assign it to a page each time? Yes, Larry. So that's where I showed you, when you go to pages in the sidewall settings, you have to ensure that you've assigned it to the page that you want it to be assigned to. But if you just want it to be assigned to the page template, it will be automatically assigned to the page template. But if you create a new page or new custom template, and you want to assign it, you have to do it manually. Okay. So on my test website here, you will see I've got home, movies, books, and then about. So here's my home page. And on my website, it's all about reviews, movie reviews, book reviews. And to make this happen, I am going to make a movies page that displays all my reviews or blog posts about movies. And I want to create a custom template that displays all my reviews or blog posts about books. Okay. So to do that, of course, we need to create custom templates. And because I want those pages to look different than my home page and other pages. Okay. So let's do that. So the first thing, if we go to our dashboard and we go to pages, I have, of course, created a movies page and I have created a books page. And if you open the book page, books page, you'll see there's nothing in there. And if you open your movies page, you will notice nothing is in there yet. But you will see that these pages are still applied to the page template, the default page template. All right. So connected to that, can you create a conditional to show template only on some page types, like a custom post? Can you create a conditional to show only on some page types? Yeah. We probably won't have time to go into custom posts. But if I understand your question correctly, can you create a conditional to show? Yes. So the answer is yes, you can. And this is what I'm actually going to do now. I'm going to create two different blog pages. Okay. So as I said, this page is still applied to the page template. But now we are going to go to your site editor. So let's go to the editor. And yeah, of course, is our page template that we saw. And now we are going to, if you, if you click on your site icon or WordPress icon, of course your list of templates and template parts come up. So we are going to click on templates. And now I'm going to click on the plus sign or the plus icon. And I'm going to say, I want to create a custom template. And I'm going to call this movies template. And now I'm going to say create. And now you will see there's nothing there. It's an empty and empty template. So the first thing I'm going to do is I'm going to add my new header. And I want this to be unique. So I'm going to add a header. And of course, if you had, if you already created a template part or header template part, it will show you. But for today, let's just choose a new one. So I'm going to say, choose an existing header. So let's choose an existing one. And I'm going to use a pattern, a header pattern that comes with my theme. And I'm going to say, I want to use this, this one, the full width header with Euro image. So I want both of my pages to have that. So I'm going to select that. Great. So the next thing I'm going to do is I want to change this image. So I'm going to say replace. And I've already added that to my media library. And I've added this image. And I'm going to say, I want this. So I want this header for my movies blog page. So apart from the footer, let's test the group out today. Apart from the footer, what is the next thing I must add? If I want to create blog posts, which block do I need to add to display posts? So we are displaying posts. So I see some answers here. And if we were going to display content from that page, we would have used the post content block if we just added content to our movies page. But we actually want to display posts. And to display posts, we need the query loop block. So yes, Anne, thank you for highlighting that at the end. So yes, Jean, and I've already created a category for movies. So below my new header, I'm going to click on the three vertical dots. And I'm going to say insert after. And now I'm going to add a query loop block. Because a query loop block displays my blog posts. So let's add my query loop block. Let's choose a pattern. Now you will notice I've already created posts. So let's see what pattern I like. So for now, I'm going to add this pattern. So there's my query loop block. It's displaying some of my posts. Let's open our query loop block and see what is in there. So we've got a post title, the post excerpt, and the post date. Well, I think below the post title, we want to add a post featured image. So let's say insert after. And let's type in post featured image. And you will notice if you add it to the one, it will appear everywhere else. Okay, cool. But you will notice there's some books here. All right, so this is a book. I know it's also a movie, but this is a book for my example today. We've got a movie, a movie, and we've got a book. Okay, so let me just save this for a moment and show you something first. So if we go to our dashboard, let's go to posts. Because these are the posts that I've already created, right? So here's my four posts that we saw. And below posts, you can go to categories. And you will notice I've created a books category and I've created a movies category. And then if you go to your posts, you will notice below categories, you can see I've applied the books category year, the movies year, movies, books. If you go to quick edit, you can change it there below categories. Okay, so just a bit of background. So now we're going to go back to our site editor and we are going to go to templates. And we've already started with our movies custom template. We've added our header. And now we've added our query loop block to display our posts. But I only want to see movie posts, right? And that's where Gene also said select. We're going to use categories. So make sure you select your query loop block. And the first thing you've got to do year is you've got to deselect inherit query from template. And that means you can customize the way your query loop is displayed. So let's just deselect that. We don't want to inherit that. And now when you deselect that, you will see some options here. You can change the columns. You can order it. There's some information about sticky posts. But we want to filter our posts. So we're going to go next to filters. We're going to click on the plus sign. Now you can filter posts by taxonomies, by the author and even keywords. So the taxonomies are your categories, your tags and even custom post types. But we don't have custom post types. So we are just going to select taxonomies for now. And then when we select it, you will notice there's filters, categories and tags. Now we need our movies category.  And when we select it, we will see that the other blog posts disappear. So the one thing I still want to do year is I want to say I only want to have two columns. There we go. Okay. So the next thing we're going to do, we're going to add our footer. So insert after forward slash footer. So let's choose one of our existing template parts. So I actually want to keep my footer the same as my other pages. So I'll just use my one of my existing template parts here and I will add that year. And then click save. So now my template for my movies page is completed. So of course now the next thing we're going to do, we're going to make our way to the dashboard. We're going to go to our movies page, movies page. We're going to go to the sidebar settings. We're going to say we want to apply this to the movies template. Right. And we are going to update. Now I know with repetition, well we learned through repetition. So I'm going to go through this again. But this time of course with my books blog page. So we'll make our way back to the editor. Click on templates. Click on the plus sign. Create a new custom template. And this is the books template. And then create. Okay. So to save some time, I just want to show you, I'm going to go. If you go to templates, template parts. You will notice that this template part is named full header with your image. That's the one. But we can't change that one. Otherwise it will change for the movies template as well. So what I'm going to do now, I'm just going to copy this. I'm going to copy this block. Copy block. Okay. And then while I'm in template parts, I'm going to create a new template part. So next to template parts, we can click on the plus sign. And now we can create a new template part. And of course we want to create a header. And let's call this books header. And let's say create. And then we can make our way back to template parts. And you will see, if you click on books header, Susan, very good question. You can tell when a block is global when it's got a different color. So let's open our template part here. And now I'm going to paste that block here. And I'm going to replace it with a books. It's select. Cool. So now I've created a template part for my books template. So let's just save that in double check. So that's my books header. And then we still have this one for the movies, the full width header with your image. Now we can return to our templates. And we were busy with the books template. So let's click on the screen or on the pencil. And now we can say forward slash template part. Let's choose one that I just created. And that's this one. And Susan, yeah, you can see now this is global. If you open our list view, you will notice it's got this purple color. And therefore we know it's global. And if you change it here, it will change everywhere else. And it's, it's applied. All right. So again, after our header, we're going to add our query loop block. Insert after. So forward slash query loop block. Again, let's choose the same pattern as earlier on. It was this one. And of course, below the post title, insert after, we added a post featured image. And then we select our parent block again, which is the query loop block. Because if you select the parent block, the sidebar settings will relate to the parent block. We deselect inherit query from the template because we want to change the query loop. We said we only want two columns. And this time for filters, again, we're going to select taxonomies. And for the category, it's going to be books this time. And of course, I've already created my category. So now I can just select books. And now the other two will disappear and we will only see posts with the books category. And then we're going to add our footer. So insert after forward slash footer. And again, we are going to use the existing template bot that's on all our pages. And now we click save. Now we head back to our dashboard. Sorry, you can just click on the site icon or WordPress icon. We go to pages. We go to books. This is still applied to the page template, the default template. So now we want to apply the books page to the books template. And we can update. And now we can see what it looks like on the front end. So if we go to the front end of our website, here's the home page. Now if we click on movies, we will see that this page has got a unique header. And it's displaying posts with the movies category and then our footer. And if you go to books, same thing, unique header. And it's displaying posts with the books category. And we've got our footer.  You could have chosen a different pattern or whatever it may be. So maybe I'll use that as an example. So if you say edit page, I'm not going to edit the page. I'm going to edit the site. So it will take you to the site editor. So let's say, for example, for the books template, if you open your template and you select your query loop, you can say replace. And you could have said, oh, no, I actually want my blog posts to be displayed this way. So it's small image and title. So let's select that. Now, I've already modified these things. So that's fine. But yeah, you could have modified it that way or changed it that way if you wanted to. So cool. Jean says, do you need to create a new template for single movie book or use the single template that come with the theme? So that's also a good question. If we go to the single template. So the single template is just for how you want a single blog post to be displayed. And of course, in my case, I want all my blog posts to, yeah, I want all my blog posts to be displayed the same way. So if you change your single template once, it will apply to all your blog posts. So I won't create a separate one for movies or a separate one for books. All right. Any other questions about these examples before we move on to the landing page example? Let me move on to my test website here. I'm just in the dashboard. All right. So we said in the beginning that there's different reasons why you would want to create a custom template. As I said, you maybe want to have a create an event or as we saw, you wanted to have different templates for different blog posts. Now, something else, for example, before we look at the landing page, in my example test website here, this is a photography website. I created a custom template for my galleries page. So another reason you might want to create a custom template is because you just want some pages to have a unique header and unique footer. So if I go to galleries and to all my action sports photos, if you click on there, you will notice that my galleries page has got a unique header. It's got the same footer though, but I wanted to have this header. So if you go back to home, you will see this header, same footer though. And for example, contact. So I just created a custom template for my galleries. All right. So I want to talk about a landing page. Now, a landing page can be seen as a marketing page. So a landing page is usually can be seen as a page that you want somebody to land on and do something or buy something or register for something. So you usually want a visitor to that page to take a specific action. So you don't want them to go to the rest of your website and get lost. You want them to take action and purchase something or as I said, register for something. So for my example, I've already created a landing page. And there you will see it's called landing page. Okay. And what I did here is I merely used some patterns to create this example. So if I open up my list view, you will see three cover blocks here. And I called my my company, the music bar best deals in town. And this might this landing page might be shared on social media or maybe via an email. Right. So this is not going to be a page that you can click on when you when you visit my website. This is something that I'm going to use as a marketing tool. So if we click on page, we will notice that this landing page has still been assigned to the page template. All right, so we will come back to that now. So let's make our way to the site editor. And now we want to create. So of course, my landing page has got nothing to do with this example website. But I just use this website for for the example. So we're going to click on templates. And now we are going to create a new custom template. And we will call it landing page template. And now we can click create. So I actually don't want my landing page to have a header or to have a footer. I want folks coming to my landing page to click on shop now or to explore the music that I have on offer. So I'm not going to add a header footer. I'm not going to add a header template bot or footer template bot. I am just going to add my post content block. So if you add your post content block. Remember that's going to pull in the information from that landing page. And that's actually the only thing I want to add here. Now, one thing I've noticed, of course, preparing for this is that the style of my post content block actually influences the display of my content. So the one thing I want to do here. Let me let's test this. So I'm going to keep it wide width. I'll just keep it here. So let's click save. And we can see how it how it changes together. Okay, now we're going to make our way back to our page, our landing page, right? Landing page. So we've got all our content. That will be displayed through the post content block. And you'll see my call to actions here shop now, listen now, make sure you open up your sidebar settings. And then assign this page to your custom template, which is my landing page template. And now I will update. That's interesting. You would have seen this information. It's displaying differently. And I don't know if that's a bug or what's going on there. Maybe somebody else can tell me, but let's see what it looks like on the front end now. So let's preview. So it displays correctly on the front end, but you would have noticed that my post content block was actually full width. And therefore this information is displaying full width. Okay, so of course, if somebody clicks on this, on this link on social media, it will bring them here. And as I said, you don't want them to go to your website. You want them to click on one of the calls to action. So let's see how we can change the display here slightly. So let's make our way back to the site editor and open up our landing page template. Click on the pencil. So you will notice if you select the post content block, you can't really change the alignment to full width or wide width. So to do that, I'm going to click on the three vertical dots and I'm actually going to group this. I'm going to add it to a group block. And now when you add it to a group block, you'll notice it already displays differently. And if you open your list view, you will see that you've got more options in your toolbar. And now you will see we can say, oh, let's actually change this to wide width. Let's save. Okay, so we've updated our landing page. Again, let's go to our page, which is our landing page. I know it looks, it displays differently here, but let's see what it looks like on the front end. And now you will see it is not in wide, it's not in full width anymore. It's in wide width. And I actually preferred this way. So I'll keep it wide width. So those are the two examples that I wanted to go through today. And now we are welcome to chat more, ask more questions. Or maybe there's something you want me to show again. So Susan's asking an important question. Do you need, sorry, are child themes still a good practice? Absolutely, Susan. You always want to create a child theme if you can, especially with regards to updates and those things. Yeah, thank you, Anne. Anne says, sorry, just scrolling up here. And there's a plugin called create block theme, absolutely. And you can save the changes you made to templates by creating a child theme there automatically. And then you can reuse it for another client. It's pretty neat. Yeah. The create block theme is an excellent plugin to use. Okay, Laura, is there anything else that you wanted to, to mention or something that I missed out before we say goodbye? No, I think just realizing that the confusion between what a template is and your page is, because a lot of people and me included, I was customizing and styling my template. And then I got confused on what the page is because the page is going to look a little bit different, especially when you have your post already and pulling that, those posts into the template. So just having that difference within there and just taking your time with it and exploring like, like Wes does on here is the thing to kind of just take a deep breath about sometimes. And thank you. I think, and I think that is something a lot of people and myself included struggled with is making the differentiation in that posts and pages are for content and templates are for design and structure. So in your templates, you're mainly going to add headers, footers, and for example, a query loop block. Those are the main things that they used to create that structure for your page. Oh, thank you, Barry. I appreciate that feedback. So yeah, now it's your turn to create your custom templates. I hope it goes well. Thank you for joining us today. Thank you, Laura, for helping out in the chat and for everyone's participation. So thanks for joining. Bye, everyone.


In this study, it was found that cats fed a dry food with a high moisture content had lower body weights and less body fat compared to cats fed a dry food with a low moisture content. Additionally, cats fed a high moisture content diet showed more physical activity than cats fed a low moisture content diet. This suggests that adding water to dry cat food can help reduce calorie intake and increase physical activity in cats, which could lead to better overall health. This article was authored by Janet E. Alexander, Alison Collier, and Penelope J. Morris.


Hey, y'all welcome to what Chelsea eats. Thank you so much for joining me today in this video I want to talk to you a little bit about Consistency, I'm calling this video consistency killed the fibroid because I think that is Absolutely, what kills the fibroids or whatever reproductive issue you find yourself dealing with the problem that people have when they are trying to heal from Reproductive issues is that they won't stay consistent and The reason that I know all about this is because I have had large periods of time in my healing journey over the years where it was very difficult for me to be consistent because of a lot of different reasons and Some of those reasons were Reasons that you know really don't Make any sense as to why I use them as reasons and Primarily one was food addiction I was addicted to food so I would do well for a little while But then I would go back go back and forth go back and forth go back and forth And of course when you're going back and forth, you're not making any progress So I had that problem the second problem. I had was caring about what other people thought about what I was doing and For whatever reason I was caring about Whether somebody was going to say something about the whatever food I was eating or why I was turning down Something that they were offering me or why I didn't want to eat a specific thing at a restaurant Or like the list goes on and on for the social Situations and I had to come to a conclusion where I had to stop caring about what people thought People weren't caring so much about what I was doing to myself when I was very sick They had no concern about all the trips to McDonald's or whatever I chose to eat They just kind of said okay That's normal, but as soon as I started eating the salad and drinking some juice and eating fruit and all those things That's when people started having a problem with it.  I had to deal with the food addiction and put parameters in place so that I I Wasn't running to food all the time when I had an emotion or something came up or whether I was happy or sad You know food wasn't oh, I mean it's not for Celebrating it's for nourishment That's what food is for and So I had to learn that because in my life I grew up Actually believing that Food was just food and I didn't even really recognize that it was really for nourishment I just thought I was hungry. So I had to eat but I didn't put the connection together And maybe some of you can relate to that. I don't know But I had to get to a point where I had to be has had to start being consistent with this journey Like I had to lay out what I was going to do Focus on that thing that I was going to do now Be looking over here over there up there looking at this YouTube looking at that YouTube this Facebook this Instagram Whatever it was at that time I had to stop like looking at whatever everybody else was doing and I had to focus in on one thing and that was The instructions that God gave me to to do in order to heal this this problem And when I got focused, that's when I started making progress And what I see a lot of you do is you're looking at my stuff You're looking at this stuff you're looking at that stuff you're looking at this stuff that stuff all over the place and you never Get a plan That you just stick to for a long period of time focus consistent effort Where you're not one foot in and one foot out Where you can allow yourself to get gained progress? And so then you get frustrated and you're like this natural stuff doesn't work And then you're going to the hospital and get in a hysterectomy or myomectomy or whatever you're getting because you Won't commit to just one thing and sticking it out for any pit period of time and also the other thing that I see is that Um You give it three months and you're like oh the fibroids are still there and so this must not be working Or you give it six months and the fibroids are still there and this must not be working or a year and it is this must not Be working when all actuality did you really do everything that you needed to do? Do you even know what you're supposed to do to help you to heal fibroids that that's that's the thing That's in my head. What I find is most people do not have a clue what they're doing. They're out there Taking all this advice from everybody and piecing it together and then they've got one foot in sometimes They're at McDonald's and sometimes they're not sometimes they're eating sugar Sometimes they're not and they expect to see all these results and it doesn't work that way so It's about getting a plan and Being consistent on that plan whatever that plan and this is not all about eating It's it's about what you're putting in your body what you're putting in your mind How like what how are your emotions going on what you're putting on your body? What are you drinking those types of things? That's what this is about. It's not about just what are you eating? you have to have the whole package put together that deal with your traumas all that stuff and and Kind of go from there and If you do that consistently That's when you will Get the results Excuse me, that's when you'll get the results that you're looking for So consistency killed the fibroid.  It's not going to happen unless you be consistent and I'm not talking about perfection either like give me any let me give you an example of perfection versus One foot out one foot in perfection is you know you have Been doing what you need to do. You've been following the plan consistently You've been being really really great at it like you've been you know Going like a well oiled machine down this healing road and in one day You have to eat at a restaurant. There happens to be some oil in the dressing that you ate That's a that's not an issue like just your next meal just clean it up You know, so that's what I mean when I say Consistency when I say perfect, it's not about being perfect So like don't beat yourself up because that salad you ate wasn't completely compliant Because the oil heads some oil in it the dressing had some oil in it one day But here's what I mean when I say one foot in and one foot out. You're eating great every day You're following the plan, you know exactly how to Eat because you've been in my 90-day program and you have actually Learned the process of how to eat or you were in my fiber detox workshop In which if you're interested in that there is a link down in the description box below for the replay if you're interested in learning more about that But um, if you're you know, you're eating well all day and then all of a sudden you're like forget it I'm just going to Wendy's Or I'm just gonna have pizza That's the one foot in one foot out Like you can't do that like on a regular basis like you're you start off on Monday at five days in You're doing great.  So Consistency is that you're doing Everything that you know to do for your healing journey for the time that it's allotted like in the whole scheme of things of your life It doesn't it it it it's nothing It's like a drop in the bucket like most of you have been dealing with fibroids for 10 15 20 years Some of you just got diagnosed in you had them for a long time. You just didn't know you did and So if you expect everything to just go away just like that I Like you got to put some time into this it it's not an overnight process It might be for for some person it might be six months I have had clients like that six months some clients a year some clients two years some clients ten years It causes helps that it it may take them because of all the drama that they've got that got them in the situation in the first place Or the fact that they just never committed to the process. So they're in and out in and out in and out in and out So it prolongs the time So what's it gonna be for you?   I hope so. All right, lots of love to you. I hope you enjoyed this video. Take care