So my name is Ryan Fairfax, I'm a engineering lead at Microsoft where for the past three years or so, I've been working on a Linux kernel based OS targeting IoT. And early on, we decided to bid on the Yachto project. And what I'm gonna talk about today is some of the lessons we learned and how to use Yachto to build IoT targeted operating systems, specifically targeting crossover chips. And we'll talk about what I mean when I say that in a few slides here. So the general agenda, we're gonna start by talking about what is a crossover system on a chip and why should you be paying attention to them? Why are they relevant? We'll take a brief detour and I'll use the product that I've been working on for the last three years as a use case to help show you the components in a system targeting these kind of chips. Then really the meat of the talk is how to integrate this with Yachto. I have three different approaches that we've tried throughout the last couple of years that I'm gonna present in detail. And then lastly, I'm gonna spend some time at the end to talk about kind of lessons that I and my team took away as we've been doing this over time. So first things first, what is a crossover system on a chip? In general with embedded CPUs and system on a chips, they fall into one of two broad categories today. So the first is application processors in the ARM world. These are Cortex-A class CPUs. And they're basically highly capable CPUs with clock speeds and the hundreds of megahertz or gigahertz. They have a memory management unit so they can do virtual memory. They have a lot of the features that you would expect from kind of a modern PC or smartphone platform. They tend to run Linux, Android or other what are often known as high level OSs. They usually include networking integrated in some form either on the module directly or on the die. Things like 802.11 Wi-Fi, LTE cellular for your phone chips, that kind of thing. So they're internet connected first. And they're usually on the more expensive side for embedded applications. And so tens of dollars though the prices on that are starting to drop. And then the other class is really microcontrollers or what some people refer to as MCUs. And so these are your Cortex-M class CPUs in the ARM world. They're feature limited and they're really designed for real time or highly predictable applications. And so they're what you put in your sensor devices where you need to know that my code is running at a very fixed interval and I hit every clock tick with precision. So these tend to run real time OSs, things like Zephyr, ThreadX, FreeR TOS, there's many, many others. And today less than 1% of them include networking. Most of these are not connected devices and if they are connected, it's in local network protocols rather than internet protocols. And so as a side effect, they tend to be very inexpensive on the order of a couple dollars at most. So a cross is our SOC and when I say that term, what I mean is something that combines the best of both worlds onto a single chip, usually via multiple CPU cores. And so you might have some set of application cores on the chip for your networking stack, for graphics, 3D GPUs, for your machine learning, wakeboard detection, that kind of thing. And you'll have some set of microcontroller cores for real time sensors, your motor code, maybe a simple LCD display. And the idea is rather than having to buy two chips you can get the best of both worlds onto one single chip that you buy for your platform. So there's three examples I call out here. There's more on the market, but these are kind of good examples to give you an idea of what these chips are capable of. At the very top we have the STM32 MP1, this chip's about a year old. It is a dual core Cortex A7 and a Cortex M4 with Gigabit Ethernet. So you can see at the top there's a module that you might drop into your device. There's the MediaTek MT3620, this is the chip my team has been working with for the last couple of years. It's a Cortex A, three different Cortex M4s for different purposes. Integrated 802.11 Wi-Fi, the middle picture there shows it's designed to be a connectivity module type thing where you might drop it on to an existing PCB and integrate it into your solution. And then kind of on the more advanced end, NXP has the IMX8 family of chips that are quad core CPUs, integrated real time cores, they have a 3D GPU on some models. They're really quite powerful. They're something closer to a chip that would traditionally run Android. And so these kind of span a pretty wide range of applications from the lower ends to something closer to a smartphone chip. So okay, why do products use these? Why do we have to care about this if we're building an OS? So I kind of hinted at this earlier, one of the major drivers, it's just a lower cost of ownership. If I've got a product that needs an application core and it needs a microcontroller, it's generally going to be cheaper for me to buy this one system on a chip than two separate chips on my board. The other reason that we're seeing a lot of interest in here is that people can leverage Linux without having to do real time app logic in Linux. And so if I am building a connected appliance, let's say I'm building a connected fridge, I want Linux for my 3D displays. I'm drawing my 1080p graphics and I want Linux for my networking stack. Because it's going to be far more mature and far more capable than anything in a real time OS. But I don't necessarily want to have to drive the compressor purely in straight Linux code because getting that predictable timing in the Linux scheduler, it's doable in a lot of cases but it requires a lot of effort. So I could put that motor code on my microcontroller part of this SoC, put my networking on my graphics code on Linux and really let me focus on my business logic rather than having to make everything fit into one bucket. And then lastly, the major reason that people use this is to add security and features. When you think about a networking stack, the Linux networking stack is very mature at this point and continues to take bug fixes, feature enhancements, react to security issues almost daily. And so I want to be able to bet on that technology that's proven in my product if at all possible. So we're entering a really interesting point in the market where the cost of these crossover chips are dropping pretty significantly. The first ones showed up on the market as early as five years ago, but they were pretty expensive. You were paying a premium. Now, I think, if I remember right, every single one of those three chips I listed is available at less than $10 and that's before volume pricing. And so the real cost to a manufacturer might be considerably less. So they're starting to get to the point where you can consider to drop these into lower cost devices and machines without breaking your budget for your product. The second kind of part where we're seeing adoption is that the curve of ramp up is much easier. So if I have a team that is traditionally a microcontroller team, and they've been writing RTOS code, let's say they're a free RTOS shop and they've been using free RTOS for years. Teaching them Linux is going to take some time. And so this gives you a partial adoption curve where you could keep certain parts of your code in your existing code base, while starting to move over to Linux over time, for example. And then lastly, there's just more silicon vendors are producing these chips. I think one gets announced all the time and there's stuff coming up that I've seen early information on that is getting more capable, cheaper. And I think that trend will continue simply because this is solving a real world problem. So before we dig into how to integrate this into your system, I wanted to kind of show a use case here and talk about the components that you might build if you were building an OS targeting one of these crossover chips. This is really meant to be representative, not the right solution. So I'm only going to spend a little bit of time on it. But this is the product that I've been working on for the last three years, Azure Sphere. The kind of marketing pitches, we're trying to build a solution for secure IoT devices. I think a lot of people are saying that right now. It's certainly a problem that the industry is working on quite a bit. And the idea is we want to run a custom crossover OS on these chips that use a combination of what most people would classify as firmware, bare metal code, a secure enclave, so a trust zone based secure enclave for certain sensitive operations. And the stock Linux kernel. And so if you think about the components in that system, there are many, many parts. And so we actually have a dedicated security core and security runtime we call Pluton. It runs on a dedicated Cortex-M4. It does things like secure boot verification. It does things like key management for hardware backed crypto, and device authentication, that kind of thing. We ended up putting on a dedicated core at the time, because we felt it was the right thing to do for security. Then Spectre happened, and we really felt good about it. But I think a lot of people are starting to see the value in dedicated security cores and enclaves for your really sensitive parts of your operations. We have what we call the security monitor, which is a trust zone based secure enclave. Running on an A7 core, we have Linux of course, running on an A7 core. And we have customer written real time applications running on these other Cortex-M4s. And so these are where they put their business logic for driving motors like I talked about earlier. And every single one of those bullet points there runs in a different execution environment. And most of them run on completely different CPU cores. And so when we're building this OS, it's not just we're building a kernel, we're building a root FS, maybe an init RD, that kind of thing. We're actually building many different components targeting many different CPU architectures. And that's where a lot of the complexity comes in and what led us down the path of really digging into Yachto and figuring out how to get it to build these type of environments. So challenges here. The major one is SMP. Linux development is focused on SMP. When you target a multi-course CPU, it's kind of assuming that all the cores are the same. I mean, that's not strictly true. There have been phones that have shipped, for example, that have some cores that are clocked higher than others. But they're very close in capability. And it assumes that you're going to run Linux on all your cores. You're going to run your high level OS. You're going to let the OS handle your core scheduling on what program ends up where. And that really at the end of the day any app can run on any core. And all of those assumptions kind of melt away when you start talking about crossover chips that have very heterogeneous sets of capabilities on their CPU cores. So you've got these different CPU cores and different capabilities. In some cases, certain peripherals are only tied to certain cores. And so your GPU might only be available to one of the five CPUs on your chip. And so it's really important if you're writing an application that needs the GPU, you end up on the right CPU. They tend to run multiple OSs or firmware. So as we talked about in the last slide, we have various firmware components, a secure enclave. I've even seen setups where they're running two or three Linux kernels on different cores designed for different things. And so you might have a kernel that has a very minimal set of config options turned on. You might have a general purpose kernel, that kind of thing. And lastly, apps have to be targeted to specific CPU cores. And we kind of hinted at that earlier. So the real challenge here is that most of the build systems that I've worked with are really optimized for SMP. They're assuming you're building a traditional SMP environment, you're building for either kind of a simple embedded chip with one type of CPU core or you're building for a server or PC where SMP is the norm. And they're not designed for AMP. And so that is where most of the challenges in building comes in. Okay, so let's switch to Yachto. Let's bring this back to something practical. So I'm not gonna spend a lot of time talking about what Yachto is, their public documentation is fantastic. And I encourage people to read through it if they don't have the right background. But the thing I will say is that out of box, there is really minimal support in the Yachto build system for non-Linux targets. That's not what they're going after. And similarly, targeting multiple architectures. There's some stuff there, it's somewhat limited. But the main thing is Yachto is very extensible. In fact, I haven't run into anything I can't fix through extensibility yet. It's one of the most malleable build systems I've ever used and to its advantage. So when we made this bet very early on that we wanted to use Yachto, we did it knowing that there were going to be limitations but we were going to be able to work around them and extend, rather than have to go find an alternative technology. So I'm gonna talk in detail here about three main techniques for building the non-Linux parts of your crossover OS. We're gonna start with recipe-level overrides, talk about custom classes in Yachto, and then lastly, talk about multi-config, which is their latest attempt to solve some of these problems. Okay, so a recipe-level override. This is the simplest solution you can do. And the idea is when you're building a recipe, and for those not aware, a recipe is simply a component that you're going to build in your system.  The simplest approach is to just override your flags and just tell Yachto, I know you're smart and you've figured out all the right flags for my Linux variant. Don't worry, I'm just gonna set C flags and LD flags to what I want. The thing that's really interesting is that Yachto actually does this in a number of places and the best example is Uboot. And so if you think about it, if you're building Uboot for your system, it's targeting the same CPU architecture, it's targeting the same ISA, but your flags are a little different. You can't go link in libc.so into it. You may have some different flags to optimize for size to keep your boot loader down, that kind of thing. And so there are good examples of this in the code base. And it works really well if your recipe is entirely self-contained, if it has no extra dependencies beyond your build tool chain. So on the right I have an example where it just shows literally what you're doing here is you're unsetting or basically erasing the default defined compiler flags and overriding them with target specific values. We started with this and this is how we built our very first code in our system. We built our boot loader for our Cortex-M4 by just saying, yeah, you know, you're thinking of booting for an A7, don't worry about it, target an M4 instead. It worked because the same GCC can target both those architectures. And it does work, there's just some caveats you have to watch out for. So if you need to build for multiple target ISAs, it gets complicated. If you need to build for multiple targets, and so let's say you've got a shared library for data serialization that you're gonna use to communicate between your firmware and the Linux instance that's running. You wanna compile that once for Linux, you wanna compile that once for your firmware. That gets a little complicated in this model. You have to have a lot of conditional logic, a lot of ifs and if-def-like equivalents in your recipes which can get out of control. The second thing to watch out for is the Yachto build system by default doesn't understand what you just did to it. And so it'll go take this code that I have on the right, it'll compile it up and it'll say, great, I built the A7 version of this and stash it in their package cache targeted as that architecture. Even though you just said, override this compiler flags, build for M4. Now you can fix this, but you've gotta watch out for all the places that make assumptions. And then the last thing to watch out for with this approach is dependencies. They can get very complicated very quickly. If you end up in a situation where you produce the same file for two different architectures, you're likely going to break your build. And that comes up, for example, if you're building a libc and so you're building the standard c headers like standard io.h, once for your firmware, once for Linux, you'll end up with a conflict. And Yachto tries to do the right thing and point out you have a conflict, but in this case it's gonna create issues. So we started with this, we stuck with this for about six months before we reached the limit of it. And I think for a lot of projects it actually probably is gonna work fairly well. We ran into problems when we started getting more sophisticated, when we started building multiple binaries for the Cortex-M parts of the chip. And so what we moved to next is custom classes. And this is taking advantage of some other features inside Yachto. So for those aren't aware, they already have a mechanism built into Yachto to take a recipe and to build it multiple times for different sets of configurations. You commonly see this when you're building for the dash native recipes, for the recipes that build for your build server versus your embedded target or native SDK, which is if you use the Yachto SDK to ship. It's controlled via this BB class extend variable that you can go look up the documentation on that says for this recipe, I want to build with these classes. And it's pretty fully extensible, but there are a few caveats I'll walk through. Now on the right here, I kind of took an example of one of our existing pieces of code that we use, one of our custom classes. It's a custom class called security FW. So it's the firmware for our security core in the system. This is only a subset. This actual file is like 300 lines long. There's a lot of variables you have to set or have to reason about if the defaults are correct. For those interested and the slides will be posted after this, I've got a link to GitHub where you can see the whole thing. But I didn't try to jam that onto the slide. But the idea here is that you're setting compiler flags, just like we talked about in the last slide, you're setting GCC flags, linker flags, you're setting what libc you use, you're setting what architecture and some other variables that control your build. And so to do this approach, if you want to go down this route, you make a new class definition in a file, a BB class file with the class name. In the class, you override a number of default flags to get your compiler to target your right architecture and set your dependencies correctly. You set class override and you add a vert class handler, which is a tiny bit of code that tells it how to process this. And you can see more in that GitHub link there.  And so there's a couple of things you may need to do along the way to really get this end to end. So first, you may need to find new tunes, which tunes are basically sets of compile flags. So Yachto has tunes for all the kind of common ARM Cortex-A CPUs, all the stuff that targets Linux. But they don't have the stuff for microcontroller course. And so you may have to add a few. That's really simple to do, so it's no big deal, but that's something that's not in box. You may wanna build a custom GCC. We actually only started doing this about a year ago and it found, I think within a week of doing it, it found four bugs that I'm kind of amazed our code even worked. The problem with using the Linux compiler is you get Linux defines, so like pound define underscore underscore Linux. And if you're pulling an open source and they're saying if def underscore underscore Linux fall into this path, they'll end up going down that route even though it's not appropriate for your environment. And so reasoning about, are my compiler flags correct? Do I wanna build a custom GCC that is closer to the ARM bare metal compiler versus the ARM Linux compiler for example? It's really important. And if you're targeting completely different architectures, you may need a new GCC anyway. So if you've got one chip that is an ARM, like say an A7 and your other CPU cores risk five, a completely different architecture, you're gonna need a new compiler regardless or you're fortunate enough to use Clang and configure how to pass the right target flags there. But you'll probably have to do some tweaks there. The link I have here shows how we defined custom GCC and bin noodles for our firmware, taking advantage of the existing work already in Yachto and extending it to produce a firmware targeting compiler. And then lastly to actually use this in your recipes, you just add BB class extend to your recipe to say what targets do you wanna build for? So on the right we have an example where we're targeting four different classes, native and native SDK. And then our classes that we defined our security firmware class and our high level OS firmware class. And there's also an example there on the right where you can see how we change the dependencies based on what class we're executing in. So you get some control to customize your recipes as appropriate. And then you can just build it with BitBake like you would any other recipe or add it to depends and have the dependency chain pick it up. So the pros and cons of this approach, the main one is you can build a recipe for multiple targets. I talked about that scenario where we've got a serialization library. That came up a lot for us where we wanted to build the exact same to get repository multiple times for multiple CPUs. And this makes it really easy to do so. The other thing that I really like about this approach is it's opt in. So if I say that this recipe can build on these classes in my BB class extend and I try to build it for another target I get a pretty clean error message saying this doesn't match up. We had some problems when we were doing recipe level overrides where you try to build them for a core that we knew wasn't gonna work. It didn't make any sense, but it would start the build anyway and then you'd a cryptic GCC error and we'd lose a lot of developer time of people trying to understand like that configuration doesn't make sense. So this does a better job of expressing that. And then the rest of the system tends to just work dependencies and packaging for example we didn't really have to do a ton of work too. There was one bug fix I'll talk about in a second but for the most part the rest of the system just picked up on this because it's a first class feature. On the negative side it's a little bit harder to reason about if you're not familiar with the product because you have to know, oh should I be building my recipe or should I be building security firmware dash my recipe? So if your developers are coming in new to your product they have a little bit more cognitive load to get up to speed on what targets am I building? You can solve that a bit by having a master level like we have a recipe that is just build the entire OS and through dependencies it pulls everything else in and then we can teach the developers the first few weeks on the project just build the OS target and then over time as you get more familiar and you wanna do more incremental builds you can get into specific recipes. And then the last one there are a few caveats here about complex dependency graphs. If you have a dependency graph that crosses between architectures so you have something in Linux that depends on something in your firmware that depends on something in Linux well first of all try not to do that trust me it's a lot of waste of debugging time but sometimes it comes up like you may wanna embed your firmware into a Linux driver as a binary for example so that it could load it up during startup. We had to do a few tweaks to the S-StateBB class and there'll be a link at the end with those changes as well for people that are curious. This is code that already handles native so I just kinda followed the pattern and it's something where I've been thinking about recently if there's a way to generalize this and figure out if we can upstream something to remove the need to specialize this in the future. Okay last option I'm gonna talk about is multi-config so this is the newest way to do this it's been around for three or four releases of Yachto now so it's been a couple years but when we started our project this wasn't an option and that's part of why we went so far down that class approach and so the idea with multi-config is that you tell Yachto you wanna build more than one machine at the same time and machine in this parlance is for purposes of what we're talking about is a logical CPU and so you have one machine that targets your Linux environment one machine that targets your security firmware environment with your Cortex-M and on the right there's an example this is from the public documentation in Yachto that shows how this works where you create config files for the various targets and then the BitBake engine just knows how to apply those or run over the loop of those configurations rather than one at a time so to use multi-config you create a multi-config folder with a machine.conf for each machine target so that's what those target one and target two.conf are on the right you update your local.conf to basically list the name of machines that you have and so in this case machine one, machine two in the example and then you have this somewhat verbose syntax let's say so you have multi-config colon the machine target colon recipe and then you can also do multi-config colon star as well and then they have a dependency as well because you sometimes need dependencies across machines and so they have this MCDepends syntax this one took me five or six times to read to make sure I understood all the parts correct but it does make sense especially when you see some real-world examples so you're basically specifying the both directions of the dependency from this target to this target and it can go down to the task level so you don't have to say I dependent on the build output you might say I just depend on the do create firmware step to get the final package one that often comes up when you're building your final images for example if you're building a single flash image that contains all your firmware so the pros of this approach is that you need pretty minimal modification and for the most part you don't have to touch your recipes which is great it's pretty easy to build recipes for multi-machine targets you just invoke it big multiple times and the major pro in this approach is that there's continued investment I've seen improvement here just about every release the first release this came out I was looking at it right before it shipped the first time to figure out if we should try it and the release notes had like 10 or 12 caveats of like it's not quite as performant and you might build a few more times you need to and over time those have all kind of melted away and so I think that shows the continued investment which is always great to see in an open source project the cons, the bit-bakes and taxes pretty verbose that threw our team for a while I think they wrap their mind around it it's very logically consistent which is the most important thing but we had some hard times with people just trying to intuit the syntax at first the second con is you can kind of attempt to build any recipe for even any machine even if it's not applicable and so this goes back to what I talked about earlier where it will build you can try to build for a target that makes no sense and you'll just get GCC to panic and throw a bunch of errors there are some ways to deal with that by limiting compatible machines and things like that but by default it just assumes that you know what you're doing when you're typing the bit-bake command line and so there's no guard rails there the multi-config dependencies are a bit limited and what they can share this will not be a problem for most people we had some interesting scenarios where the output of one of our firmware builds generated a header file that we wanted to include in a Linux build and so we needed to pull items from another architecture into our sys route that's pretty dangerous and I think I was doing it again I'd be really careful to try to break that in a different way but it's hard to do that with the multi-config approach okay so those are the three approaches we can try let's talk about some key lessons to extract here that I think are generic regardless of how you're doing this so first of all the most important thing I can say is designed for debugging I don't know how many hours I lost staring at GCC failures or configure errors before I found the one word that said oh wait I'm building for the firmware all my assumptions are wrong and so anything you can do to have your logs make it really clear I'm building for this target architecture and in this logical target is really important for your team if they have to go look at compile flags you're gonna lose a lot of time and a lot of wasted energy keep your targets as isolated as possible so we had a bug where we were accidentally sharing the standard library headers assert.h in particular between our firmware and Linux and it was trying to run the POSIX version of assert on our firmware which didn't compile so we fixed that bug and then our firmware assert ended up in Linux and our programs just started infinitely looping when they hit an assert so I went on a very angry refactoring tear to solve that problem and make sure everything's isolated but it's really easy to subtly leak libraries and headers between your targets and if they're the same CPU architecture and the linker will just do it you might get really tough to reason about behavior the third one is just don't assume one compiler can target all your cores I'm seeing a lot of scenarios where even with an ARM you might have a chip that has a 64 bit Linux CPU so you wanna build the ARCH64 compiler but your microcontroller is 32 bit and it's gonna stay 32 bit for the foreseeable future and so you might need multiple compilers there and I'm seeing a lot of interest in hybrid scenarios with ARM plus risk five or ARM plus a specialized DSP that kind of thing and I think that's going to that trend is going to increase over time and so you have to reason about do I have the right compiler tool chain for my target and then the last one try to keep as much in the octo as possible we originally when we did this we had a bunch of Python scripts that wrapped BitBake I think a lot of people have done this at various points in time to kind of do the final step of the build to gather, grab all the compiled binary images and build a flash dot bin that we're gonna ship off to our partner to put on the flash chips it got hard to debug and it ended up slowing down our build because we weren't taking advantage of all the optimization in octo we had to run BitBake twice and so you get to a point where you had idle cores, that kind of thing and when we pulled it all into a final single recipe in the octo system it not only made our build time better but it made our developer life a lot better because I could just teach them hey, just run BitBake on the OS target and you will get a fully bootable image and if something went wrong all they had to they just had to understand how to debug octo rather than having to debug octo and having to debug the custom scripts that I wrote on a whim one day and so we've really benefited from keeping as much as possible which is why I think it's so important to look at extensions like this and pull the stuff into octo rather than build your firmware somewhere else and link it in later. Okay, so I've got some links here on the slides and again like I said, the slides will be posted to the schedule site so you can get these links rather than having to quickly type down the randomly generated hex strings but this shows a lot of the changes that we did in the full examples that I showed on the kind of right hand side of that screen in some of the earlier slides so you'll see the full real world example code for some of the custom classes and multi-config stuff and that last link is actually our entire open source OS drop it's not everything we produce in our OS but it is enough to show off a lot of these concepts and that is updated monthly that's the link to the latest one and that includes the entire octo tool chain that we use and so that's a real world end to end example if you wanna see something concrete. Okay, with that I think we've got a few minutes for any questions. Oh, great. Oh, yeah, absolutely. So if you set them up correctly, a single code will build the whole system, all different operating systems and whatever. Absolutely.  There's a, it said that you're trying to build a recipe I think on the comments on the next one. It'll try to build a recipe for any, it might be this one. Yeah, okay, so can I just go in and write the current machine? Could you explain that? How did you come up with that? So we ran into a couple problems where we had good examples, we had a static library that was for a firmware only and so it was some bare metal code and we ran into a problem where people would run BitBake by default targeting the default machine which was Linux in our case and it would try to build it for the Linux environment and fail to build and the reality was that it was just never even applicable. It was a misunderstanding by our developers but there wasn't guide rails to stop them and give them a clean warning of this isn't applicable versus here's this GCC error because your libc doesn't link correctly. Sure, okay, other questions? Yes, and I could probably give an entire talk on how we did update because as I'm sure everyone's aware it's a very simple topic with one clear solution. We ended up building a custom update solution that we've talked about in a few public talks previous to this conference but we ended up having to do some custom stuff specifically around bootloaders to get our bootloaders to update, that kind of thing. It's a big part of the product offering that we built on top of Linux but the biggest challenge and update for us was mostly about redundancy and making sure that if someone pulled the power cord at any moment in time it kept working because on an IoT device people do that all the time. Other questions? Okay, thank you very much.


Hi there shipmates. Captain Paul Anzalata here, commanding officer of USS Gerald R. Ford. I want to talk with you today about the Secretary of the Navy's efforts in support of mental health awareness. So I have two main points for you.  I'll tell you, as Navy leadership, you are very high on our priority list, the highest on our priority list in terms of how important you are to our mission and to our family. And the second point I have for you is just how many resources there are out there for you and how they interact and how they are there in a way to help you, help you directly, and how that won't impact your career. So I'll start out with a personal story. I was assigned to a ship a couple of commands ago. I've been in the Navy for about 27 years. This is a few years ago. I was assigned to a ship and we had a sailor who was in crisis. He needed help. And he had gone far enough that he was in a pretty bad situation and he had gotten himself into a precarious place. And his own life was in danger. In that moment he reached out to someone via social media. It was a friend of his. Actually that person was around on the other side of the world but they recognized what a problem it was and they called the command. They called the command's officer the deck. The officer of the deck, even though it was the middle of the night, took quick action and contacted the commanding officer and the command master chief who responded right away. They got out of their beds. They got dressed right away in the middle of the night. This was about two in the morning and they responded to the ship. They got to the ship in rapid fashion and were able to talk with the sailor directly in the position where he was and helped him out along with the help of the other professionals that were on the ship at the time. If you're not so certain about the people within the command and whether or not your situation might be able to be held confidential, you can go to the Fleet and Family Support Center. You can go directly outside, still to a Navy associated resource and get that help you need. So I'll highlight a couple of those for you. One is the medical department on your ship or near your ship. You can always go to a medical provider and talk with them about an issue you're having and be expecting confidentiality in that discussion. Also you can reach out to a chaplain or someone assigned to the chapel that's on the base near where you are and talk to that chaplain and expect confidentiality in the communications that you have. By that I mean that chaplain or that medical provider isn't going to call the command after you talk with them in very, very few circumstances that might happen only if it's in an immediate dangerous situation. And then I'll tell you there are other resources in addition to those folks. You can call a DOD helpline. You can call the Fleet and Family Support Center. That's near to every Navy base I've ever been on. If you drive over to Fleet and Family or if you call Fleet and Family Support Center and ask for a counselor, you will get one. And I can tell you as the commanding officer of this ship, I don't get reports on that. I don't get a follow-up notification saying one of your sailors came to us looking for help. Please take it from me. We have your back. We care about you. And there's a lot out there that we can do to help you out. Thanks.


Founder Robert Lomaccio brings 50 years experience in the health food industry to bio-nutrition and remains committed to making your good health a top priority. All bio-nutrition products are made in the USA and utilize eco-friendly packaging. Here is a sampling of fine quality products from bio-nutrition. Blood pressure wellness. This multineutrient formula provides superfruit antioxidants, whole food extracts, vitamins, minerals, and wild-crafted botanicals to aid in the maintenance of healthy blood pressure levels. Cholesterol wellness. This synergistic blend of vitamins, minerals, omega-3 fatty acids, botanicals, cofactors, and superfruit antioxidants provides nutritional support for healthy cholesterol levels, improved circulation, and cardiovascular function. Women's wellness. This comprehensive blend is designed to support the nutritional needs of active women. One daily tablet provides vitamins, minerals, antioxidants, botanicals, and cofactors in support of breast and bone health and hormonal balance. Prostate wellness. This synergistic blend of antioxidants, botanicals, vitamins, and minerals is designed to provide nutritional support for proper prostate health and function. Should you have any questions about these or any products from bio-nutrition, please call, visit, or email, Professional Supplement Center.


Hello, good morning, welcome back to another vlog. I look a little bit like a hot mess right now, so we're gonna ignore that. I'm obviously still like in my pajamas and I need to get ready for the day. It's currently Friday morning, I took Benny out for a little walk around the apartment, had my coffee, did a little bit of work on my computer and now I'm about to put away some clean laundry that I just washed last night, which by the way, I showed you guys that laundry detergent. This one, the Glamorous Diva Wash from Tyler Candle Company.  And I really don't think I will be repurchasing it just because of the price, like I just can't justify it, but I told you guys when I first got it, I was like, eh, I don't know if I really like this.  I don't know, I just think like the first time I smelled it, I was like kind of thrown off, I didn't know what to expect and it was a little bit different than what I was imagining it to smell like, but now I really love it and I have been getting compliments and when I go to take a shirt out of the closet, I'm just like, oh my God, it smells so good and it really, really lasts on your clothes and like even as I'm just like out and about, I keep getting like whiffs of it. Am I trying to encourage you to buy $90 laundry detergent? Absolutely not, but I'm keeping it real. I have been really loving it. Oh my God, but another thing that I wanted to kind of vent about for a quick second is freaking copyright. It's ridiculous. So if you don't know, I think most people by now have an idea of like how YouTube works, but you cannot include like just regular songs. That's why a lot of times the music that you hear in people's blogs is like not really the best. It's kind of like elevator music, but it's because we have to be really careful about the songs that we use because if the song is copyrighted, even if you're just using a couple seconds of that song, it can get flagged and your video can get demonetized or it can even get taken down and it's just so frustrating because it's really hard to find like decent sounding music that's free to use, that you don't have to worry about the copyright. And I have a bunch of old videos where I included songs that were supposed to be copyright free. They were free to use. They were just like created by like independent sound cloud creators. And at the time they said, yes, feel free, use my songs, you're all good. You don't have to worry about copyright. And then over time, I don't know if they end up getting signed with a label or something, but I swear like every so often, one of my older videos will get flagged for copyright.  Like every single day I have at least like one to three videos that get flagged. Luckily it's been nothing serious and I haven't been getting in any kind of trouble, but what happens is the video then, it says that it's either demonetized, meaning I don't make any money from the views on that video or the money that I would get from those views is just going straight to the person that owns the copyright on that song, which is such bullshit, because if I have a 30 minute video and it's all clips of me, it's all my own content that I spent hours putting together, editing myself, and I have a 10 second clip of a song. 10 seconds out of a 30 plus minute video. Now all of the money that I would make from those views is just going straight to the person who owns that 10 second clip of the song. And I totally get it. Like I understand, you know, creative ownership and all of that kind of stuff. Like I respect that, but I just think that that's such bullshit. Like I'm sorry, 10 seconds out of an entire video. Luckily YouTube gives you the option. Like if something gets flagged like that you can just mute that part of the video. So that's just what I've been doing. And that way I get like the full monetization back.  But I don't know exactly what the plan is gonna be for this weekend. I thought that I would attempt to vlog and bring you along because I have not vlogged at all with my friends down here. If you're new, I moved back in December from Pennsylvania to Wilmington, North Carolina. And I came down here completely by myself, not knowing anybody. And I've made some friends down here. I have like one little group in particular that I spend a lot of time with and we spend pretty much every weekend together. But I tend to not vlog on the weekends when I'm out with them. And I feel like a lot of my vlogs lately have just been me at home in my apartment. And I feel like that gets really redundant and boring. So I wanna try to share a little bit more of like my social life and my life outside of this apartment. I always feel kind of weird vlogging with other people, especially for the first time.  But I'll try to get some clips here and there. I know that I am hanging out with them tonight. You don't know exactly what we're doing. We might be going out downtown. So yeah, I'm gonna finish putting away the rest of this laundry.  And I think that's it. I cleaned my apartment yesterday. I do have to wash my hair at some point because it is, oh my God, what is this? It's super greasy. By the way, look how long my hair is getting. So crazy. I haven't been doing anything special. I haven't been using anything special or doing anything different. I don't know. I feel like even my nails and my body hairs, everything's just been growing super fast. I'm gonna finish straightening up, pull myself together a little bit. And then once I have an idea of like what the plan is, I will let you know.  But I wanted to give a quick shout out to Anna Louisa. They are sponsoring this portion of the vlog. Thank you so much to them. I have been working with them for over a year now and they are my go-to jewelry company. 99% of the jewelry that I have and that I wear on a regular basis is all from Anna Louisa.  My answer is always Anna Louisa. I need my jewelry to be high quality because I don't like to take it off a lot of the times and I don't wanna have to worry that oh, if I get it wet, it's gonna tarnish or turn green or stain my skin. So my huggies are all Anna Louisa and I've had these now for about a month, maybe longer than that. And I have not taken them out since I got them. They stay in my ears all the time. I wear them in the shower and as you can see, they still look amazing, super shiny, not dull, not fading or tarnishing at all whatsoever. I also just recently got this necklace. This is the Elise pendant necklace and I love it. I just love how elegant and classic it is. Especially with Mother's Day coming up in about a month, Anna Louisa jewelry is a great gift idea. In the past for Mother's Day, I normally would take her out somewhere like we would go get lunch or we'd go get pedicures together or something like that. But this year I'm not gonna be able to be with her in person because I did move pretty far away, which makes me really sad. So I was like, oh, what am I gonna do? You know, I want to let her know that she's appreciated and I wanna be able to get her something for Mother's Day but she is such a difficult person to get gifts for. That's why I usually go like the experience route with her. But I recently got her necklace from Anna Louisa and she loves it and wears it all the time. So for her Mother's Day gift, I'm gonna get her another piece from them. And they actually are having a Mother's Day sale that's going on right now. It's buy one, get one, 40% off. It's a great deal. You definitely should take advantage of the sale while you can. Like I said, their jewelry is amazing quality. They're also a sustainable company. They offset 100% of their carbon emissions, which is amazing. I will have the link to their site and a discount code in the description for you guys. And thank you so much, Anna Louisa, for sponsoring this part of the vlog. Let me show you guys my full outfit. I just got these sunglasses a couple days ago from Key Australia. And then here's my outfit. Oh, I didn't even say where I was going or what I'm doing. I am meeting up with one of my friends that I'm gonna be hanging out with tonight. We are gonna go take our joggies for a nice long walk and try to get them nice and tired. So then that way, when we're hanging out tonight, we don't have to worry about them. I always try to do that. I don't leave him home alone very often or typically for like long periods of time. But if I am going out at night, I try to make sure I get him nice and tired during the day. So that way, he just goes right to sleep and he doesn't even care that I'm gone. So I have this bodysuit from Forever 21, just simple nude. And then these joggers are from misguided. I'm going to wear my nude pillow slides from Amazon. So we got a nice all nude outfit. The nude sunglasses too.  I figure while we're out, I'm probably gonna get a little sweaty and gross.  So I'm just gonna wait till later when I get back to wash it and style it and all that. We had such a good afternoon. We took a nice long walk down by the beach. We were down in an area called Fort Fisher and there weren't many people out. So we were able to just let them go off leash and play. And they're both really, really good. Like they come when we call them. It wasn't an area that was like anywhere close to the road. So it was totally safe for them. And they had a great time and it was perfect because by the time we got back, they were both so tired. So they were gonna sleep really well while we get to have a fun girls night. I just love where I live. It honestly looks, I mean, they do film a lot of movies and TV shows here. So it makes sense. But it just looks like straight out of a movie. I feel like I say that all the time. I just still can't even get over it and believe that I actually live here. And after that, we stopped at the liquor store. We're gonna make lemon drop martinis tonight. I'm so excited. For a while, our thing was espresso martinis. We were making those pretty much every weekend, but we decided to try something different and switch it up. So we went and got all the supplies for that. Now she is on her way home. I just hopped in the shower because, especially after walking around and being by the water like that salty air, I just felt like I needed to shower and my hair, I mean, you guys saw this morning, it was so greasy. And now I'm doing a little bit of light makeup. And then I think I'm just gonna like dress super comfy and then bring a bag of clothes to change into in case we do end up going out.  I think I'm just going to blow dry it and then I'll bring my curling iron with me. And then if we do end up going out, I'll just throw some curls in it. I am already to go just grabbing my tote bag. Oh, I need to grab my lippy combo. Just gonna grab a couple random things. I'm bringing these little heels I have from H&M. I'm gonna bring my faux leather pants from Zara. They're super comfy, but really cute at the same time. And then this square neck bodysuit from Misguided. I'm gonna wear my oversized black denim jacket also from Misguided. And then I might drape it over my shoulders with that outfit depending on how I feel. Then I'm bringing some hair products for styling my hair with. This is the Kendra Thermal Spray. It's a heat protectant and hair spray in one. Spray this on my hair before I curl it. And then, oh, this is not the one I wanna bring, hold on. Not your mother's beach babe texturizing dry shampoo. I put that in my hair after I style it to give me some extra volume and texture. And then it also helps my hair, like it prevents it from getting greasy as quickly.  And that should be it, I should be good. And I'm just wearing a band tee and the same joggers I had on earlier. For now, just to be comfy, I'm gonna put on Laneige lip sleeping mask.  I think that is everything. I'm gonna head over there now. I will try to get as much footage as I can of our night. We'll see how much I can get. Stepping in for Sam today. Give us the tutorial. Hi guys, I'm stepping in for Sam today, my name's Hayley.  Okay, let's see the ingredients. Oh, we're not gonna use this. We're gonna use this, this. Oh, we're still gonna chill. I'm prepared. Okay, in the lemon chill, okay. So what you're gonna do is you're gonna do one shot of vodka. Okay.  They're here for the tutorial as well. You know, Greg, you've got the girl feeling loose. Hi, welcome, Hayley's kitchen. How may I help you? Oh, I can pour that for you, man. I'm reaching behind the counter. You know what, I forgot, mm-hmm. Let me smell this.  Oh yes. Too bad we just don't have martini off of it. I know, but it's fine. Oh wait, martinis don't have ice. We'll cut that out. So cute. Thank you. Wow. Thank you. Amazing. Cheater. Let's go over. You like it? Mm-hmm. 9.32, I got home like four hours ago. So I don't know how I am awake right now. I feel very puffy and swollen and just disgusting. The sun is like coming through the blinds in my room and I don't know, it just woke me up. So decided let me make myself a coffee and I'm just gonna lay in bed for a while and then see if I end up falling back asleep, which I hope that I do because I really don't wanna be running on less than four hours of sleep. It was a really fun night. Like it was really, really good. No drama, just tons of dancing. The only thing that kinda sucked about it was those shoes that I wore. I thought we're gonna be totally fine because I've worn them. I've had those shoes for years and the heel is like pretty small on them, but I guess when I've worn them in the past, I didn't do as much walking as I did last night and there was a lot of cobblestone streets and I was dancing like crazy, which was so fun. But my feet, like halfway through the night were killing me when we were ready to leave and we were walking back to the car.  So yeah, they're feeling pretty sore right now but it'll be fine. This lining makes them look so angelic. We should be angel. When I got home, he was literally just laying on my bed sleeping like totally content. Today I think it's just gonna be a chill day. I'm probably gonna hang out in bed. I really could go for just like laying around and watching Netflix or something, like starting a new show. The weather is really nice today though, so I don't know. Let's see, depends how I feel. Hi. I just got off of FaceTime with my mom. I was doing some under eye patches. These are the ones I was using, the Pixi Detoxify. Now I am actually gonna start a load of laundry and I especially want to wash my sheets and I'm gonna start with my comforter because this takes the longest to dry. I just got dressed for the day. I'm gonna bring my dog Benny to the park and then after that I wanna stop at Trader Joe's. Let me show you my little comfy casual Sunday outfit. So I'm wearing this hoodie that's actually from my merch line which I will have linked down in the description. If you would like to check it out, let me show it to you this way. So it's the hair texture chart with all the different textures going from straight to super coiled and it says all hair is good hair.  If you like this design, it'll be linked in the description, go check that out. And then I have some plain black leggings on and yes, my room is a little bit messy but we're gonna straighten that up later. The haul. I didn't really need groceries so I got mostly just like frozen stuff because Trader Joe's just always has really interesting things. So I like to go there more for like my fun grocery shopping. So first I got some Tuscan bread. This is so good. A slice of this toasted in the morning with some eggs, delicious. They also got some chicken breakfast sausage and then I got ground turkey, mushrooms, shaved Brussels sprouts. I was thinking throwing these in a pan with the ground turkey over some rice like like a little bowl. Sounded pretty good. Then for the fun stuff, I got some Hold the Cones. I got these chicken tikka samosas. I've never tried these before, but I love samosas and there hasn't been a single thing that I've gotten from Trader Joe's that I didn't like. So why don't you try those? They sounded yummy. I also got the chicken tikka masala. This is so good. I also got the mac and cheese, so, so good. And then the chicken fried rice, also so delicious. Then I got a bottle of wine and the cashier, who was very cute by the way, said that this was really good.  Cleanse my system a bit. Ooh, it smells so fussy. Cheers. Oh, it's not that at all. Didn't taste the best, but not spicy at all. Honestly, it kind of tasted like pickle juice. Hello. Good afternoon. I need to put this air conditioning on because I'm like naked right now, sorry, but it's freaking hot today.  It's like really warm and really, really humid, but I don't know if you can tell. It's super cloudy and insanely windy, and I'm pretty sure it's supposed to rain really hard in a few hours. Not really an ideal day to be out. Tomorrow is supposed to be really nice though, so I definitely would like to go to the beach or at least just go for a walk or something. But yeah, it's currently Thursday, so it's been a few days since I last vlogged because I really just haven't been up to much this week. It's just been a lot of work working on other videos, and I just didn't really have anything to vlog. Oh, also earlier this week, I randomly stopped by HomeGoods and I got some martini glasses because we were saying earlier in the vlog that we didn't have any martini glasses to put our martinis in, so now we're gonna be official and I also got some margarita glasses, but I'm about to make myself some lunch. I'm trying to decide what I wanna have.  It's already almost 3 p.m., and I haven't eaten anything yet. I'm gonna have breakfast since I didn't have any yet. So a couple hours later, I was just cleaning up the kitchen a little bit, and my friend Julia and I are about to record our podcast pretty soon, and I just feel like so sleepy and out of it, and I think it's like the gloomy weather. So I'm gonna make myself a little espresso to wake up a bit, and you know what? I kinda wanted a glass of wine, but then I was like, ugh, that's just gonna make me more sleepy. I need some espresso to wake myself up, but I wanna like loosen up a little bit because the episode that we're recording tonight is about friends with benefits, and I don't know, I just, I feel like right now I'm in kind of like a myth mood. So if I have like a little bit of a cocktail, I feel like it'll, you know, put me in like a fun mood. So I'm gonna add a little bit of Baileys to my espresso, and since I have these martini glasses now, I can make myself a little espresso martini. I'm gonna add vodka to it because I'm not trying to get crazy, but we'll do, because I have these ingredients, forest espresso martinis, but I have the tiniest bit left, like literally only enough to make one. So I may as well just finish what I have.  Like I usually only drink on the weekends when I'm with friends. Oh my God, it's so good. Cheers. I'm gonna go get everything set up so we can start recording. I'm feeling much better already. This is definitely helping. I have everything set up, ready to go. I have GarageBand open. This is the program that I use to record and edit the podcast. So I just do my recording straight through that. I have that open. This is gonna be our ninth episode. I can't even believe it, so crazy. I have my AirPods here, just charging them up so that they're ready to go. She should be calling me any minute. I'm very excited for this episode. We got so many submissions on Instagram, like so many DMs of people sharing their personal stories and experiences. So if you don't already listen to my podcast, I'll have a link to it in the description. It just took Benny out for a walk. And it started absolutely pouring. That was like perfect timing. I got off the phone with Julia. I took him out really quick. He like just finished peeing and I was about to walk back and I felt rain coming down and like literally as I'm walking up the steps, it just started coming down. But yeah, it is now 9.23. Every time we record, it's always like, it takes multiple hours because we usually are talking on the phone first before we actually start recording and we catch up on life and then we discuss what we're gonna talk about in the episode and how we wanna like go about it and who wants to say what, who's gonna do the intro, blah, blah, blah. And then we actually record the episode which usually is like an hour and a half. And then after we're done recording, we stay on the phone and we usually talk some more because we always end up having more thoughts after the fact. Definitely glad I had that espresso before we started. I'm going to attempt to edit as much of this episode as I can because it's Thursday night and Thursday is our posting day but Julia was in Italy and we were supposed to record last night but then we both had things going on and there were some issues. So we weren't able to do it until tonight. So now, I don't know. I know it's not a huge deal like if we just posted a day late but I kind of would rather get it over with now before I go to bed. That way I don't have to worry about it in the morning because tomorrow, the weather's supposed to be really, really nice. So I wanna just be able to go out and enjoy the day. I'm reconnected I guess with a friend of mine that I had, I literally know him since elementary school. Good morning. Wow. It's one of those mornings where I woke up at like seven and I felt pretty awake but then I was like, ah, it's still kind of early. I don't really need to get up yet. So I laid there for a little bit and then fell back asleep and then didn't wake up again until like 9.30. So now I feel tired because I probably overslept a little bit. I finished editing the podcast last night but I like to listen to it all the way through after it's done just to make sure there's no mistakes and that everything sounds good before I make it public. I am listening to it now as I'm having my coffee and kind of just like getting ready. It is a gorgeous day out today so I just wanna be outside as much as possible and I don't have any other work to do. I uploaded a video, yesterday, so I'm good on that. So yeah, I'm gonna hop in the shower soon and get ready while I'm listening to that and then once I have approved this, I'm gonna make it live then we can go out and start our day. All right, well that's gonna be it for this episode then because we have been sitting here talking for a while. My mouth's getting dry. All right, well we will see you guys next Thursday with a new episode. Can't wait, bye. Bye. Publish, perfect. That was perfect timing. Just listened to the entire episode all the way through, sounded good, just finished getting ready so it was perfect timing and I decided to wash my hair and heat style it because in a few days I actually have a hair appointment. I'm gonna get my color touched up. I'm very, very excited. I'm definitely gonna vlog that and bring you guys along so that'll probably be my next vlog so I wanted to just blow it out now. I know it's easier to like foil and do color and stuff on hair that's like blown out smooth so I figured let me blow it out now, that way it'll be good and I can just leave it and then the next time it'll be washed is when I'm getting it done at the salon. I just used my Dyson flat iron and I just added a little bit of like a loose wave bend kind of thing and then I just pulled it straight down the ends. I have a tutorial on how I do this so I'll put, I'll link it in the description. If you're interested, it's like a review on this flat iron and a tutorial in one but I am about to meet up with my friend. We're doing the exact same thing that we did last Friday at the beginning of this vlog, taking our dogs for a walk. We're gonna go to that same area so that they can play. We can get a nice walk in. I'm hoping that it'll be the same as last week and there won't be a lot of people there so that way we can let them off the leash again and just let them run around, get all their energy out. But yeah, I'm gonna clip this up because we're gonna be right by the ocean and I know it's gonna be super windy so I thought I would share my little clip-up thing. This is how we would do our hair when we were just cleaning the house and now it's become trendy, I don't know. But anyway, I just grab it like I'm putting it in a low ponytail and then twist and then bend down like this and then take my claw clip and just clip it into place just like that. And sometimes you get these little cute pieces that stick out, that wasn't even intentional but I love it so I'm gonna leave it just like that and then I love having these long curtain bangs so then you can just pull these pieces forward like a little bit of a messier kind of look. Just like, you know, kind of mess around with it a little bit, make it look a little more effortless. Let me show you my outfit. So I'm wearing this crew neck sweatshirt from H&M and I just rolled it up and I tucked the bottom into my sports bra so that way it gave it this cropped look and it'll like hold it in place without me having to like tie it up and make it all like scrunched. I just feel like this is a little bit more flattering and then I have bike shorts from Aerie. Claw clip is from Amazon and then I have these very dainty stacked necklaces. This actually, they're two separate pieces so you can wear them separate but they came together as one set and it's from Anna Luisa. I can't remember the name of this. Off the top of my head, I'll put it on the screen. I love it. I've been wearing it in like the last couple of videos and I got multiple comments asking me about it and where it's from, so yeah. Also, Anna Luisa, I'm telling you guys, anytime you see jewelry on me, it's always Anna Luisa. The only thing I wear that isn't from them is this thick bangle, which is, my mom gave it to me. Like it was hers, she got it in Italy somewhere, like don't know the brand or anything and then I'm just gonna put some sneakers on. I don't know which ones yet. Probably my all black Adidas.  Literally exact same thing that we did last week. So I'm gonna wrap up this vlog here. Thank you guys so much for watching. Don't forget to check my description for that link to Anna Luisa and take advantage of that Mother's Day sale.  It's a really good deal. I hope you have an amazing week and I will see you really soon in my next video. Bye.


At least one person was killed and 16 others were wounded in a Russian drone attack on the northern Ukrainian city of Sumi on July 3, local authorities said. An official building and two residential buildings were damaged in an attack carried out with four drones, the Sumi Regional Administration said on Telegram, the messaging app. Video obtained by Reuters showed an object flying low over Sumi city center and going down, after which an explosion could be heard, closely followed by a second explosion. Kiev's military had earlier on Monday reported shooting down 13 of 17 Iranian-made Shahid drones launched by Moscow overnight in a separate attack on several parts of the country. Russia, which launched its full-scale invasion of Ukraine in February 2022, has stepped up airstrikes against Ukraine in recent weeks, and Ukraine has launched a counter-offensive to try to retake occupied territory.


new, new, new, new, new. Okay. RTC bat. I kind of suck, you can't tell how big is this. Is this like five feet across or like a quarter of an inch? This is a, it's actually about half an inch. So it's a trampoline. That's the, you could take the red path or the black path and it's a trampoline. It's a pool filled with milk. Yeah. It's an RTC battery for the Raspberry Pi five, which has built in low power and wake up support. But to take advantage of that, you need to get a RTC battery. And this is the one recommended by the Raspberry Pi foundation. Now in stock, I don't know how much documentation there is about the low power mode, but you might as well get one now, have it shipped to you. And by the time it's documented, you'll be ready to rock. This is a revision for the eight foot speaker bonnet. We finally have these back in stock. And the revision is now comes fully assembled. So that only is the bottom header on, but the terminal blocks are pre-attached too. So if you want to attach speakers, you don't have to do any soldering whatsoever. This is completely plug and play with any Raspberry Pi computer. Okay, next up. Next up, we also have a revision for the FTDI friend. It's like an ancient product, but still a lot of people buy it. The big change went from mini USB to micro USB. Not a big change, but I figured you might as well get with the times, even though it's USB type C is kind of becoming more popular. But we didn't want to like, we do too much of the PCB design. So we just swapped out the mini for the micro USB. Otherwise it's still fully assembled, comes with a genuine FT232 RL chip. You can know it, you can trust it, you love it, using so much stuff. And on the back, there's some jumpers to configure it. Got the last photo with the coin. You can set five volt or three volt power and signal logic level. And you can have pin 6B DTR so that you can use it with some software that uses DTR or use RTS. Next up. Oh, we have another screen. This one is a nice ground 2.8 inch 480 by 480 display. It's an RGB666, which means as usual, it's used with our qualia board, which we've been doing so many projects with. I've got a live demo for this. It does not have a touch screen, but we'll probably get a touch screen version later. So I have it here hooked up to the qualia and we've got that video playback code. Yeah, I made ground doom. Hold on, this is crashing, come on. I think the, oh, you know what? The cables are loose here. Hold on. Cables are longer loose. Playing doom or just like animated build-up. It's going to be like a science game. You sent me that gift to play. This one's nice. It's funny. This one is just a nice butterfly. It's a nice butterfly. Nice butterfly. So these beautiful displays are IPS, so they look great from any angle. Nice back lights, 40 by 40 pixels. Stargate too on there somewhere. Yeah, hold on. Let me get to the, I think these cables are. The cables are? Well, I don't know what it is. Hold on. Works great on my desk, but. There's, that's the little, that's cool. There you go. Okay, here we go. Thank you. You're always looking, you're always like, where's the Stargate? Yeah, this is it for the folks who want to make a pocket Stargate. You can't say, you can't send an entire person, but you can send some baby, some, some body parts. Yeah. Like your fingers. Does just play animation, but yeah, it works great with the Kualya board. Just watch out. Not every driver in my controller can control these displays. It's a lot of pixels, you know, a lot of memory and you have to drive them very quickly. But the Kualya does work with Arduino circuit pythons. So a great, a great pairing. Okay. And started the show tonight besides the utility that our customers, our staff, our community, everyone who makes the things go is, you guessed it, the high camera is coming soon. We'll have them in the store shortly. Yes. These are going to go, super, super, super, super, super, super fast, but this is our camera. Yeah, the piece of me just came in on Monday. So we're, you know, I'm going to finish the tester, but I wanted to get these photographs so that folks could sign up. So this is an all in one camera that can run circuit Python or Arduino. It has an ESP32 S3, which is Wi-Fi and Bluetooth capable. 8 megabytes of flash, 2 megabytes of PSRAM, which it needs because it has to read up to 5 megapixel images from the onboard camera sensor. And the camera sensor is in the middle there. It's an OV5640. It's kind of the nicest camera that you can get from microcontrollers at that size. And it's got autofocus capability. So you can take either close up or far away photos and you can manually change the focus or autofocus. It will use the motor to move the lens back and forth for you. You can power it over USB type C or battery if you want battery powered or auto recharge. There's a micro SD card slot for storing images and you can also take GIFs, animated GIFs. There's a STEMMQT and STEMM non-QT ports, two GPIOs analog or digital for LEDs or sensors and I squared C for any other kind of sensor device you want to attach. There's a built-in accelerometer. There's a shutter button, a reset button and on-off switch so you can save power. A preview screen, 240 by 240 so you can see what the camera sees, lots of buttons and a speaker that it'll does when you take a photo or you want to get people's signal or something. So I thought I could just show a quick demo of the circuit Python code running as you can see the REPL and it loads in, it loads the firmware for the autofocus which takes a few seconds and then you've got your own camera here I'm going to back this off because this is... Okay, so yeah, you got a camera and you can autofocus, take photos, you can change. This is the firmware that we've got running on it that is in circuit Python which of course means you can modify it.  This is solarized, like a cool, kind of like a funky effect. Normal, inverted, so it's hard to see because it's like, but it inverts all the colors. You can do JPEG mode and we have a mode that you can take like very small animated GIFs if you want to make an animated GIF camera. Stop motion photography which is kind of neat. Stop motion means that, let me go back to normal. When you take a photo, it'll show a ghost of the previous image. So if you're doing stop motion animation, you can tell, like how much you have to... Onion skinning. Yeah, it's onion skinning, your idea, just kind of cool. And then let's... Yeah, you can see where the last photo that you took was so you can do the next one. Yeah, SD card support. Good for claymation, little videos. Yeah, we might show a little like how to do stop motion but like if you want your very own completely open source camera that you can write code for in Arduino or circuit Python. And of course it has like web access and Bluetooth access so you can do wireless projects with it. There'll also be a case. This is showing one half of the case and then of course I left the other half. There's another half of the case on top that has an LED wing built into it. But for now we're just having the bare board. If you want to just get started, you want to make your own enclosure and then we'll also have a case available. That's new products.


If you get overcome with nerves showing your cutting horse, you need to watch this video. We've got five experts or fertility champions who share their two most important tips they think about when they compete. Put your details here so you too can have access to this awesome video.


Greetings friends! This is Survival Doc. Today I'm going to do a video review of two backpackers pantry products that I received from campingsurvival.com. I have garlic herb mashed potatoes and I have hot apple cobbler. This packet of garlic herb mashed potatoes says that it serves two. All natural just add boiling water. And the directions say remove and discard and close oxygen absorber before beginning food preparation. Add one and three-quarters cup of boiling water, stir well, cover and let sit for 13 minutes, stir and serve. Okay that sounds easy enough. The hot apple cobbler says requires minimal cooking. A little bit more complicated directions but it's still pretty simple. Take out the oxygen absorber, garlic herb mashed potatoes. Mmm smells good. And the mashed potatoes, good. And there's the apple cobbler. Smells good. And the apple cobbler is very good. What I really like about these backpackers pantry products is the serving size. It says it serves two but this is really enough food in here to serve four. Backpackers pantry.


include more than just dates and timelines. They include information that helps you and your team create effective content for wherever you are on the internet in this sort of streamlined way. We recently did a video on the importance of having a content calendar for your brand, but today we're gonna be doing a bit of a deep dive into how to structure one that helps you consistently achieve your goals. So Emma, let's go ahead and jump on in what to include in your editorial calendar. Yes, a great question. What to include? Well, how you structure your calendar is going to depend on the type of content and how often you're creating. So it's really up to you if you want one just like mega calendar, right? For your blog posts, TikToks, tweets, et cetera. Or if you wanna be able to build them out individually, so you'd have like separate calendars. So for example, if you're using Google Sheets, you can have an overview of all the content and then create tabs to focus on the different platforms that you are posting to. However, here are some of the must haves when optimizing an effective content calendar. And now when I think of must haves, target keywords is key to your content strategy. Keyword research is the foundation of content marketing because keeping your content relevant and on topic for your target audience just makes it easy for them to see and engage with everything you're doing. Also by identifying niche content, it creates opportunities for your brands to join the conversation or just simply celebrate what you and your customers care most about. Research and assign the target keywords that the content will be optimized for. And then try to use a unique target keyword for each post, but also keep a running list of that cornerstone keyword content that your brand can rely on. And lastly, you can also assign three or four secondary relevant keywords and use them in your content really depending on what you're posting to support the SEO of your post. Which that brings us to goals. You gotta have goals. You don't wanna just be posting for the sake of posting. You wanna be intentional about each post that you're taking the time to put out there and then assign a goal to each piece. And the whole point of having a content calendar is to give yourself time to plan ahead.  It also gives you time to create meaningful content that gives your audience value. And now is it to promote a product or service that you offer? Or are you really cross-promoting on another platform such as those people doing Instagram stories, wanting to check out their latest YouTube video? Try developing a few main goals that you wanna achieve with your content. And by having an intention, they really help you focus the direction of posts to lead to the desired result and limit last-minute panic posting because you forgot to publish on Facebook all week. All right, you've determined your goals. Next up, consider what assets are needed. This will depend on the type of content you're producing, but things like photos or videos, links to specific stats or quotes that you wanna use in the content, as well as any, ooh, my favorite customer success stories, those reel me in every time. Include those if you can. But it can be hard to keep track of all the important details that go into your creative process. So listing all the elements you'll need in order to complete the post, it's gonna help you to keep track of all the moving parts. Now, obviously it's a calendar. You're gonna need some dates, but in addition to knowing when you wanna post to go live, setting deadlines for when you need to have the images edited, captions written or videos edited will help keep things running smoothly, especially if you're working with others. You can also set dates to go back and audit old content too. So broken links and outdated information are never a good look. Schedule time to review previous content in order to keep the future content fresh. Now, if you're just starting out, you may wanna plan about a month out, a month ahead. And then when you get the swing of things, you could probably shift to planning out a whole quarter. Now, the farther you plan ahead, the better your view of your overall content strategy. Plus, it helps you prevent repeating the same type of content too often, which that drives me nuts. On the flip side though, planning really far in advance also takes a lot of work, right? And if your content needs to change with current events, which I recommend you do, it's better to be flexible rather than set in stone. And now, if you've been creating content for long enough, you've likely experienced the benefit of a content calendar, but optimizing your process can only boost your efforts. The actual scheduling of the content is easy part, once you get your format established. But the best part, nothing is set in stone. Yes, the whole point is to set a schedule, but you can adjust your publishing flow and content ideation as necessary. A strategic approach to content can make a world of difference for delivering the absolute best content for growing your audience. All right, that's a wrap, but your journey doesn't have to end here. We have over 200 videos for you to watch. Be sure to like, comment, subscribe. Thanks for watching. This is The Journey.


and welcome to Juana's Jardin. My name is Fatima Colindres and I am a Park Ranger with the Golden Gate National Recreation Area. I am a Community Outreach Ranger which means I have the important job to bring the parks to the people and the people to their parks. I collaborate with leaders from Bay Area community-based organizations who help me bring non-traditional park users to their national parks. In the following videos I will be sharing the story of Juana Briones, medicinal uses of plants native to the Presidio, and how to make corn tortillas in your very own home. But you may be asking yourself why is Ranger Fatima dressed in this outfit? Well, I am remembering a special lady. Her name is Juana Briones and she lived right here in the Presidio just like but she lived in the time of the Spanish, the Mexican, and the early American period. Her name was Juana Briones and she was a local curandera or healer or medicine woman and she used the plants that grow here in this park as medicine. Now we are in a national park and that means that we cannot cut any of the plants that grow here in your national park. Now these plants that you see in my little bouquet, these are plants that were grown at the plant nursery here in the Presidio and they grow them in potted plants and they let me use them for demonstration purposes like I'm doing here today with you. Okay, so if you want to grow your own plants, please do so. They're easy to grow because they're California natives which means that they have been growing here for thousands and thousands of years and you need to do very much to have a beautiful native plant garden in your home if you have the space for it. So what do I have for you today? Well as you can see I have my favorite tea cup because we are going to make some tea today and what are we using for tea? We're going to use these little leaflets from one of my favorite plants which is the yarrow plant. It's right here. This is the yarrow plant. It has beautiful white flowers. Yarrow comes in different color flowers but the one that grows here in our park is the white flower version of a yarrow. A yarrow is very medicinal in that you can use the leaves if you have an aching tooth and you can't get to the dentist but you want to numb the pain. You take these these leaves and you crush them. You can do it with your hand or you can do it with a rolling pin.  But today we're going to use these yarrow leaflets to make tea. So I'm going to wash my yarrow. I already preheated my water and my tea kettle and I have a little cup right here. Now what I usually do for your purpose I'm going to just put them in the tea cup so you can see the process. You can actually put them in a coffee filter. Okay, wrap them up in a coffee filter and that will prevent your your leaves from going all over the place. What I usually do is I'll take these leaves, put them out like this, get a rubber band or a string and put it directly into my tea kettle and just let it seep in there. But for today's purposes I won't do that because I'm only making one cup just to show you how it's done. I'll just leave it in the in the coffee filter and then just pour some hot water over it and we're going to leave it just sitting in there for a few minutes. Now while we're waiting for our tea to get nice and and stronger or strong I'm going to also show you another plant that grows here in our garden. This plant right here now this is the strawberries that I planted in my garden. I'm going to pick one for the use that I have in my kitchen later on and what I'm going to be doing with this plant is I'm going to be using it as a natural scrub to remove any dry skin especially right now you know we've been staying in place in our homes and we've been washing our hands a lot and we've been noticing that our skin is dry and so we have a lot of dry skin. So this is a natural scrub and Juana Briones and the people that lived in this place before the Spanish would have used this plant not only for food to eat it but also all the little seeds help you as a natural scrub. So you just take these old strawberries that you might have in your strawberry baskets that you buy at the store and just take those old ones instead of throwing them away use them as a natural exfoliant a natural scrub. This is how Juana Briones and maybe some of the Olone people of this area would have used this plant for a natural scrub. So there you are everybody natural scrub with the strawberries and our yarrow tea. So I'm going to take this yarrow out of the water here and so remember when we first started we had our yarrow leaves we washed them and then we put them in a coffee filter here they are there's our original leaves okay and as you can see a little tiny leaf let escape but our tea is ready you'll know it's ready when your water is a little yellow like this. Now the yarrow tea is good for stomach aches they say that you know because it has the that quality of being able to stop the bleeding if you suffer from ailments in your stomach that could be bleeding in some kind of way maybe ulcers they say that this was a medicine that would have been used for ulcers in the time of Juana Briones but I have used it as a medicine and it is a little bit bitter so if you don't like bitter tea very bitter yep maybe you don't seep it as long as I did as you saw it was just during the time that I was showing you how to do a scrub that this tea took effect and it's easy as one two three just heating up your water cutting your little leaflets and just putting them in the coffee filter into your water and you have your yarrow tea all right so that's how it is that's how you can make some yarrow tea but if you don't want to make some tea and all you need is a bandaid because you ran out well you take those leaves just like I told you with the toothache and crush them and put them on that cut and it'll stop the bleeding as well here is our little yarrow and then we also have one more plant that I almost forgot this is our sticky monkey flower our sticky monkey just like the yarrow can be used as a natural bandaid as well these are some of my plants that I love to talk about here in your national park the golden gate national recreation area I hope to see you in your national park but remember when you are in your national park if you see these plants please don't cut them they are indigenous to this area and they are protected because they are growing in your national park so remember have fun be safe and keep your hands clean maybe with some cyanotis I will also demonstrate how you can use this plant right here which is the california lilac or the scientific name for this plant is cyanotis or how I remember it is see I know this as you all know since you're staying at home just like I am you always have to wash your hands right now this the cyanotis plant has lived here for thousands and thousands of years and if you need soap all you have to do during this time of the year in the spring is take a few of the blossoms I always start cooking by washing my hands wet your hands and then look at this you have natural soap from this plant the cyanotis plant okay or the california lilac it has beautiful blossoms as you can see nice blue blossoms sometimes it looks like a bush sometimes it looks like a tree but this is the natural soap that has been used by people in this area for thousands and thousands of years Juana may have used this plant as I am using it today because Juana um knew or learned how to use these plants by the people that already lived here for many many years before Spanish people arrived to this area the olone people and today I'm using it as well to start my cooking demonstration on how to make your own tortillas I want to share with you how to make tortillas from scratch using maseca which is um something you can buy in your local grocery store either a mexican store or the local safeway if you live in a neighborhood where there's a lot of latinx people like myself all right so I'm using maseca which is um corn flour and I'm just putting in some corn flour here uh you can use the measurements it tells you how to do it on the package I just kind of go by my own um way now since I've been doing this for a little while and so what I'm going to do next is come I'm going to add some cold water all right so this is kind of how it looks all right and then I'm going to mix it if you like to wear rings as I do make sure you take off your rings when you're making the tortillas because you don't want to get your rings all full of corn dough all right the other thing that I already have pre-going is my comal or you call it a griddle I have it on and it's nice and hot because as soon as I get these tortillas made I added a little bit more cold water to my mix once we get these tortillas going we just want to throw them onto the comal and cook them all right so I'm mixing the dough now if you were in Juana's time the spanish-mexican period then you would have been doing a little more work than I'm doing today you actually would have had to grow your own corn and here in the prosidio corn didn't grow very well because the prosidio has very sandy soil so the corn would have been grown somewhere else and transported to San Francisco after you had your corn you would have to grind your corn anametate a grinding stone and then after you ground your corn you would get masa this is what masa is or corn dough and spanish is masa and then once uh you have a little ball I'll start off how my mom taught me when I was very young you start off with a ball kind of what like you do with play dough now you have your little ball and then you start using the palms of your hands to turn and press turn and press and so once you get the hang of it you can go a little faster and then you start using your fingers to turn and press the dough so that you're making like a little pancake shape um tortilla okay and once you have a nice and round and evenly flatten I mean mine doesn't look all that great right now but maybe yours will look much beautiful much better you can put it on your comal oh and if it turns up but like mine just did just start over it's okay and reshape it turn and press turn and press turn and press fix any cracks and put it to cook okay and you do the same with the rest of the dough until you are done the has been cooking for a little bit it's going to look like this and once it's looking like this you can flip it over and cook the other side the other ones are not ready yet as you can see all you need is a little bit of corn flour some water cold water is best and then you can make your own fresh tortillas at home just like Juana Briones did so long ago now Juana because she had her farm and her farm workers she not only had to make tortillas for breakfast lunch and dinner for herself and her family but she also had to make them for all those workers that she had in her ranch here's our first tortilla of today thank you so much for joining me in my kitchen I hope you your tortillas turn out as nice as mine delicious