Hi I'm Leonard buttering and today I'm coming for your bootloader Yeah, this is not as new as the stuff force that I talked about yesterday, but I still think it's kind of interesting But of course I would say that but anyway, this is I'm gonna talk about two closely related, but distinct topics like one is the bootloader spec and One is SD boot as the boot some of you might already know, but my hope is to make it more Well known among those who don't know it yet So, yeah, I'm talking about bootloaders So let's jump like right in. What is the bootloader specification? What's the first topic? I want to talk about the bootloader specification is a Specification which you find under this URL it defines Well, let's then ask the next question. What is actually as the boot? What's the other topic? that is a bootloader that is documented there and It used to be called gummy boot and it implements the bootloader specification So let's have a closer look what bootloader specific specification actually is It's a generic specification on any platform any firmware that Allows you to define boot entries, which are simple drop-in files These drop-in files are supposed to be placed below a location called dollar boot Like that's just a wild card name because there might be various different ways to reference it So it's not really in anything called dollar boot. That's just like in the variable where one option is that dollar boot is a partition of type EA hex on MBR partition tables or on a partition of this UUID type on GPT like we just picked that up because it was Not used yet option B is that dollar boot actually equals the EFI system partition for those who don't know EFI's that well I mean all your laptops all your current laptop is least probably boot with EFI these days and The way How linux gets ultimately started is that the firmware the EFI firmware finds a special petition which is the ESP on your hard disk and once and find it Yeah, basically starts some binary in that thing that is traditionally grub But I kind of want to advertise it to you to make this SD boot instead And that then eventually invokes the linux kernel and then from then on you get in order to then system decent control but Yeah, if my system petition is something you have on all your computers regardless if you run windows or linux Even macOS they all have one ESP that contains like the stuff that the firmware supposed to Load the specification that I'm talking about Can use the ESP to find these snippets that I'm talking about The file system for dollar boot is supposed to be VFAT like Microsoft file system The ESP kind of suggests that anyway if it's used like that, but even if you're not using the ESP for this purpose Use VFAT anyway, but this is not actually enforced to require anything like this is just a suggestion So these snippets each define a boot menu item, right? Like, you know grub when it shows you like this menu that you select what you actually want to boot each of these snippets actually defines one of those Yeah, just as a side note by the way if You actually use The GPT petition was that you your ID value or was that MBR? Marker then system. He actually mounts this automatically at slash boot Which is something really really nice because it makes things very robust and you don't have to have at CFS tab around right like any Petition that is marked that way that is on the same hard disk as the root petition of your operating system will be Entirely automatically always be mounted to slash boot Unless you actually have a manual entry in which case that takes precedence and similar if you use option B Um Yeah, the ESP gets mounted to slash EFI nowadays Unless you have a manual entry for it again So this is actually little known and unfortunately most of the distributions that actually make use of this They really really should because it allows you to like basically boot up the system without any entry in FS tab But anyway, this is kind of a side show here actually it just is supposed to show you that if you stick to The locations for the bootloader spec that I just suggested then you have this wonderful benefit that After boot everything is automatically discovered for you as well So let's have a closer look on these drop-ins that I mentioned each drop in as mentioned defines one entry in the bootloader menu Two types of these there's type number one, which is like a config file These config files just define a kernel just boot and in a dot-e boot a title for that a version for that and then a Entry in the boot menu is created through that Yeah, simple text files describing kernel entity name and other metadata and there's type two. It's in a slightly different Directory and these are EFI binaries for those who don't know ESP that well is P EFI that well EFI is actually a little bit like this firmware Interfaces a little bit of an operating system of its own that inherits lots of semantics from DOS, but also from Windows not so many from Unix, but It knows a concept of EFI binaries which are just executables as you might know them now in the second in type 2 mode the the entries are just one EFI binary for each menu entry, right so and no further data just that Let's have a closer look at type 1 generic This is like type 1 entries are generic and very flexible because you can create them with your text editor And then you can just add to that whatever you want to add you can generate them with a script It's completely up to you and very very simple type 2 on the other hand are Simple in a different way because basically you just have for each boot menu entry that you have you have altogether only one file because Yeah, the EFI file encapsulates all the other bits in one, right? So because it's one file that incorporates the EFI binary for the operating system like the Linux kernel Also incorporates the unit already Corporate some metadata and things like that. You can sign them as one that is awesome for Shakya boot stuff Of course this concept is specific to you if I While the boot loader spec is supposed to be generic and useful outside of the EFI spec If you use these kinds of binaries, of course You are strictly within you if I simply because the concept of EFI executables does not exist Anywhere else by the way if any of you have any questions I know that there's a lot of very low-level technical stuff by all means do interrupt me right away in case I can clarify something What's also awesome about type 2 stuff is because it's a single file we can do single file updates This is really nice for something as fragile as a bootloader because it basically means that Dropping in a new entry into the boot menu means dropping in one file Removing one means removing one file Renaming something means renaming one file So you never have this risk that you update do you drop something in there and you drop something in there And you drop something at the third place and then you have to pull it all together by adding this Force file and then if something aborts in the middle you get a like half installed kernel and the Internet is missing and stuff Like that all of that doesn't exist because it's just one file Both of these types are equally supported by the bootloader specification Both of the types has their use cases for many use case type 2 is nicer for other use cases type 1 is nicer To be more specific how this can look like this for example is the bootloader Specification snippet type 1 for Fedora 30. I hope you can actually read that even in the back rows there It's a very very simple Configuration file it's purposefully simple So that even people who hack on bootloaders can easily write a parser for this right? So there's no Jason no fancy stuff There's no continuation in lines or anything like that. It's just one word followed by some value I think most of this should be pretty self-explanatory. There's a field title. That's the name for the bootloader menu item There's the version which is the it's a version for that the idea Why these entries have versions is so that the bootloader menu can automatically sort each entry and automatically put the newest entry first Their machine ID is useful like the machine ID is actually the Same machine ID that you see an Etsy machine ID after you booted up the system The idea is basically that if you have multiple operating system multiple Linux is installed on the same system That you can see which options which many like kernels actually belong together Simply because they will all carry the same machine ID There is options. That's really just a kernel command line string. There is Linux This line actually specifies a kernel binary to execute and there's an ID which you guess it Specifies the inner ID. I know this is again very technical and maybe some of you don't know what an inner ID is An inner ID is basically the first thing that if the Linux kernel initialized after the kernel itself initialized it starts the first user space program and On most generic Linux distributions this first program sits in a little bit something like a tar ball But it's actually not a tar ball that Is loaded into memory by the bootloader already and that thing is then responsible for finding the rest of the operating system So usually when you boot a Linux system you combine both you take This is the kernel and this is the first program you're supposed to start. So that's what it's about. So this is yeah For anyone who ever dealt with bootloaders, this should be very very self-explanatory As mentioned both types are supposed to be like complimentary you can use them together if you want So you can have some operating systems on your like if you can install multiple operating systems on your on your Hard disk and they all will all share the same ESP or the same Yeah, dollar boot location all these operating systems can drop in their own boot menu items simply by dropping in one or More files in case of type one or type two But each one of them because they can drop in their own files They will not step over the files of the others which is systematically different from how things used to be with grub and all these bootloaders because Grub can only be owned by one operating system at the time and when you install multiple Linux operating systems on the same system they tend to end up fighting for the Who owns actually the bootloader and how the other ones get to register themselves? Anyway, thief in the bootloader spec all items describes themselves and Can be combined freely Yeah, this is what I just said bootloader and drop-in directories are shared between the Oasis That's kind of the key here, right? It is not our like I mean there is this if you ever install multiple operating systems or just multiple versions of the same operating system like Fedora 30 and Fedora 31 you always have this problem that they Fight for who owns the bootloader and who gets to write to grab CFG or whatever. It's called This is supposed to fix this right like simply by taking a lesson from how we do drop-in directories from RPMs Right, you nowadays know that that for example install a GNOME program via an RPM on your system What actually happens to make it show up in the menu of GNOME shell? For example is they drop in a dot desktop file into some directory where GNOME shell ends up looking we just say And this model is used all across Linux nowadays like for example if you have an RPM then contains a system You service what does it do? It drops in one dot service file into a directory in Etsy and that's how system he learns about it and so we this is how we do these things in Linux and the bootloader spec is ultimately just taking that inspiration and Saying drop-in directories are awesome for jointly managed, but independent loose coupling components To register something with something else. So let's just do do that for the bootloader as well so bootloader and drop-in directories are shared between OS's in a safe way without these Multiple operating systems to ever step on each other's toes Because they will never own the same files together They will only Yeah, it drops stuff into common directories together Yeah, of course the bootloader that actually boots all these operating systems that needs to be installed once But the idea is really you have one bootloader and many co-operating players multiple versions of the same operating system Or multiple operating systems all together The bootloader specification like this was very quick Overview what it does if you want to read the full thing go to the website. It tells you all the further details about this The takeaway is the bootloader specification is supposed to be very generic way how operating systems can described how they want to be Started it's implementable by any bootloader, right like in fact, I Couple of years ago wrote a module for grub that just implemented that the big difference being Yeah, in that case you wouldn't have to constantly rewrite grub CFG when you add a new your kernel But it would just yeah find automatically what it what these bootloader specifications snippets actually defined One specific implementation is the second part of the talks that I'm gonna want to talk about This is SD boot is the EFI bootloader shipped along with system you can use it independently too, but it helps us Maintaining that together with system D because it basically allows us to do adds a couple of integration points between system D On the host and the bootloader before it System D also makes use of the bootloader specification at a different place specifically in system D's k-exec reboot mode, right like you know that if you reboot a System D system you do that with system control reboot, but there's also system D system control k-exec if you do that then We won't return to the bootloader and the bootloader will start the new operating system to start on them after the reboot, but instead it's The old Linux that finds the new Linux kernel to start and then uses the kernels k-exec mechanism To start that it's the k-exec is something that the kernel supports where you basically can replace the current kernel with another kernel So if you say system control k-exec we somehow need to figure out which kernels to actually start So we use the bootloader specification with that so that basically allows you to actually even use system D itself as a bootloader for another operating system that is registered that way so Yeah So far about the bootloader specification if anyone has any questions about this so far would be the perfect time to ask a question now That's one What about the support for other operating systems, I mean in the past you hard-coded Linux But what about free BSD or even in a good future Microsoft Windows? So very good point Here you see like the fifth line that says linux, right? This is how you specify linux carl actually This is just an example that couple of more stands has defined There's one more for example. It's called EFI then you can specify an EFI binary and Windows and Mac OS They get started as EFI binary. That's how we can hook those up There also people have said send us patch and we merged it for multi-boot specification, which is how you can start free BSD in these kind of things Yeah, so The bootloader that we implemented ourselves like SD boot Does not implement the multi-boot specification for the simple reason it's too dumb But the bootloader specification is really supposed to be something that everybody can implement right bootloaders for mbr Bootloaders for whatever year else you want And not even just that actually Ideally we want that the bootloader specification is actually something that just the firmwares implement directly because there's no reason to Plug a bootloader between if it doesn't do much more than just show a show a boot menu. Oh with Multiple operating systems operating cooperatively to add entries. How is the default entry determined? So that's a very good question, but let me quickly finish that but now I forgot your what you Well the tape I says Linux it doesn't do that type 1 says nothing Linux specific. It's type 2 that says this Yeah, it has lungs in it, but It it doesn't matter really what you have there you can put anything in there So, I mean we put it the Linux in there because these are EFI binaries where we request that you add a special metadata Object into the binary so that we can extract from the binary the information like what's the name for the menu entry? What's the version for this so that we can have that information, right and that is Linox specific but also Linux specific people could also do that with honest binaries ignore the Linux thing. Anyway, your question again was about what was it again default entry. Oh the default boot entry so SD boot right like I mean this is of course the precise algorithm implemented for this is up to the bootloader that wants to do this SD boot has a logic it orders By the menu entry name alphabetically and then individually for each of these it orders by version putting the newest version first So if you only have one operating system installed It's always going to be the newest one of that and if you have multiple and it's beneficial if you if your operating system starts with an A Yeah, that's that's why we did that of course So what about integration with different architectures like IRM and so So the specification is explicitly supposed to be entirely generic Regarding which cut kind of firmware you have and what kind of bullet I have and also what kind of architecture you have Our implementation only works for EFI people have are running it on arm and on x8632 and on AMD64 and I think even some people did it for on AI 64. I'm not sure why they care about that stuff, but I Mean the specification is so generic right, but there's nothing specific in there. There's actually one key But I don't have that here, but there's actually one key defined that says architecture even for the snippets Because sometimes it might be interesting That you might want control that you can define a 32 bit kernel that you want to show on 64 bit EFI because that's actually compatible some way or sometimes you don't want that So we added this key specifically so that you can make filtering land and decide things like this, but yeah summary is The specification supports it your bootloader, hopefully too Anyway, then let's switch to the To sd boot so sd boot I always claim as a boot loader, but it's actually not It's really just a boot manual like a boot loader is something that takes some operating system image loads Into memory and then jumps into it sd boot doesn't do that sd boot is a efi binary and it shows you if nice Rent as a nice menu on screen. You can use keyboard and stuff like that And what does it do when you select one it just invokes whatever you selected as an efi binary again So it's the bios the firmware that's actually doing the boot loading It's not sd boot. Of course this distinction who's actually loading stuff into memory and stuff like that is irrelevant for most people That's why we just sloppily call it a bootloader even if it's really just a dumb dumb menu Sd boot is a efi only It makes the world so much easier because we have file system access we can do all kinds of very simple stuff And yeah sd boot as mentioned is shipped with system D For reasons that we can like we can pass lots of little bits and information between system D To the boot loader and from the boot loader to system D like starts with performance data But it's also like that system D can tell sd boot for the next reboot What it shall be shall be booting into which is pretty cool actually because you can you can then say from for example Gdm you can click on something booted to windows and then you can tell then you can reboot and Automatically boot the windows because sd boot will then know It implements of course a boot loader spec With limits it only supports invoking efi binaries nothing else I mean, that's totally okay by the way if people do this right like they always like our primary interest with the boot loader Speckers that we get people to Accept that as what to unify on and then of course we're completely aware that on different architectures different firmwares There are different sets of execution environments you want to support fine Do it and ignore all the other boot entries. We ignore basically all boot entries that do not much match our expectations about efi What sd boot also has this nifty feature is that it actually automatically discovers windows and macOS installations on the same hard disk Which is super awesome, right? It does that at boot, right? It's very different from how distributions did this was grub right like where you have this humongous horrible script That collects all kind of data from your operating system to generate the linux entries and then goes on and tries to probe all system petitions for Windows or macOS and then generates some magic weird programming Script out of this that is then processed again with m4 or something like that and then you get any output This is so much easier because this thing actually while because if I is so much easier to to work with during boot It just looks like is there also windows installed. Is there also macOS installed? Oh, let's add a new menu entry for this requires zero configuration. It's just if it's there it shows up Has a couple of other things as well like for example if you have the efi shell Which is like the DOS prompt, but just for you if I installed will automatically find that to add that to the boot menu It also has if the firmware supports it and all modern firmwares do It gets a boot into firmware menu item where like we nowadays live in the world where booting can be very very quick so most of the firmware manufacturers did this by not necessarily initializing all the Keyboards any more in particularly if you have us be once that makes it difficult to enter the firmware menu this way so it's very very useful if at least the Bootloader menu the one that we implement gives you the ability to return to the Far more menu. So you basically yeah, if you manage to get into sd boot into the boot menu There's an item you click on it. Bam. You're in the firmware setup As I mentioned already it doesn't do anything else been running if I Um variables, um, it's one if I binary you just drop that into your ESP and Our next boot will automatically find these drop-ins will automatically find Windows and Mac OS blah blah blah blah I showed in a menu you pick something it boots it up. There's a tool called boot control install Which does that for you, right?  It just takes this If I binary like the compiled version of sd boot Takes it from some directory and use a lip where it was shipped in the rpm And then does a simple CP basically and puts it into the ESP and that's I mean It does slightly bit more like it creates the drop-in files for directories for you But mostly to make it beautiful not because that was necessary. It's totally sufficient of the first one creating the boot entries actually does that but yeah If you want to update the thing there's boot control update updating is what you would do if You installed a new version of sd boot that has some newer features and yeah, it's a little bit smart Like it checks it looks at the if I binary Reads the version out of it like when it was compiled what system the version it was Compiled from and only if that's if it has a newer version will update this It's the idea basically of this is that the rpms of Sd boot that are shipped with the various distributions like for Doros or whatever if they should all adopt this which of course they should that they can all just call boot control update from the rpm scriptlets and Yeah, the newest version of the of sd boot will always win and be automatically updated to make this fighting around the bootloader main binary unnecessary It has a boot control status that tells you if it's installed or not and it can also tell you which Which boot menu entries are actually existing right now So that you can know while you boot it into Linux Which are the boot menu entries that will show up if you would reboot right now and would see the boot menu Yeah, they're pretty trivial commands Just to master mention that they have a couple of other nice features like for example the command line editor Grub has that too nothing too fancy If I has this nice concept called if I variables which are away how the bootloader can communicate with the way In both directions we define a couple of those for example to select the next entry to boot into I already mentioned that this is useful for implementing boot into Windows from Linux, right? You click on GNOME the button somewhere boot into Windows and just just that It has this in two ways just for the next boot or for all future boots. I Yeah, you can also Is an if I variable to select the boot timeout, which is just how long the menu is going to be shown before the default menu item is Selected This can be used in various ways like for example You could also add a menu to go like a menu item to GNOME that says Boot into boot menu and all it does it changes the timeout from 0 to 15 or something to make sure that the menu is actually invisible to the user Already mentioned that briefly there are also if I variables for performance data Specifically if you want to know how quick your system boots up You want to know how much time was spent in the bootloader and you also want to know how much time The bootloader spent waiting for user input Before the user pressed enter because that data is usually not that interesting to you Right like because it just means like how quick was the user to react So we pass all the time in data along and actually system de-analyze if you have applied with this actually reads that data And automatically makes use of this very useful information What's also very interesting is it sets an EFI variable referencing the used ESP Right, which is something that is weirdly missing in the if I specification that the operating system Otherwise has no way to figure out which is actually the ESP that was used for booting because there can be multiple options for that Let's say you have the hardest whereas an ESP, but you also plucked an USB stick that also contains the ESP because it's the windows Live media or something that's not always clear. Which one is the one that's used We send if I ever tells us that it's actually what we used to that mount slash EFI as I mentioned earlier There's also an EFI variable that enumerates discovered entries Just that tells you yeah, what was actually there on the previous boot That it found and usually tells you also if there's a windows or macOS installed parallel it's kind of similar to the boot control status output that I Mentioned earlier the only difference is this shows what was actually there when the boot loader was last running While boot control status is tells you what it's right now there There's also an EFI variable that Declare the feature set of the boot loader like which of these options actually supports This is really nice so that GNOME can show the menu items when that I mentioned when they are available But can suppress them when they're not Actually most of the stuff that's on this Slide is not specific to SD boot. We kept this entirely generic so that any other bootloaders can implement that too So far we're not aware that any of those do right like if bootloaders implement this they get this wonderful benefit that Systemally at various places actually will start making uses of the information like for example system to analyze Will show you this among the normal performance data that it shows and system control reboot has this option reboot into Boot menu item that will then suddenly work But yeah, there's a little bit of a like the grub people they're not interested in this kind of whereas integration So yeah, we did our side of making this Open but so far there wasn't any interest from the other side So far about the basic feature sets, I hope you've got the basic idea what we're doing here right like I would like to clean up how we do bootloading on Linux a bit and dumb it down substantially and Diminish the risk how the various players in this field fight around common resources, right? And I hope you also get the idea that the specification that that we did is really supposed to be something that is Systemally makes use of heavily and that we really would like if Distributions would adopt across the board and that while we implement them and as the boot They're actually not as the boot specific and any bootloader can implement them even without ever mentioning system D By the way, but yeah, there are questions now is would be a perfect time to ask questions Do you have any plans to implement? verification of Like a secure boot or encryption encrypted boot partitions that kind of stuff that is a very good question I think this kind of a verification like second boot is very very important how we should build our operating systems It is the reason why this type 2 Bootloader entries exist right the unified ones where you take a kernel you conquer that in an ID to it You can add a boot splash actually to it You can add a lot some little metadata that is gripe the things and you can add a kernel command line string to it If you that's all combined into one EFI file one PE if I file that you can run And then the good thing is if we do it this way then you can take this whole file and sign it with PE sign for second boot, right? So that basically means that During if you want a fully secure boot path All you have to do is you sign sdboot itself You generate these unified binaries you sign those and then the inner D that's inside of that needs to verify the The root file system, but then that's already all you need for for having a secure chain So it makes this so much simpler because there's no not not that many components that have to verify each other It's just that yeah firmware verifies sdboot sdboot very it doesn't even verify anything It just asks the firmware to verify the unified carlamage and then the carlamage is just the root file system And there you go, so I think it's very important But our approach to this is we don't do anything we just make sure it's in a very friendly way So that the firmware can do this for us for free so Sorry, my question is rather about I guess it's an asshole question because it's about the chances of adoption In the sense of I mean, it's it's not a bad idea. Obviously You need to get us into grub realistically, right? Well, I mean so Yeah, grub. I think grub is a problem not a solution. I don't know, but file system drivers and user space Yeah, what was them? You only do with if I write Well, the boot loader specifications completely generic, right? but I mean my point being for sdboot to be Used instead of grub must probably do something similar, right? No No So the key really is that we agree on this dollar boot petition and that everybody puts the stuff there and Ideally on EFI that can just be the ESP, but if that's not possible you have a separate petition But inside of that you have VFAT VFAT is something that EFI reads anyway Linux reads anyway Grubb reads anyway everybody that's kind of the lowest common denominator that everybody can agree on that is already Built into hardware that even the the the freaking raspberry pi weird firmware actually supports some form of Fat so the idea really is just use that and you have to have that anyway on EFI machines, right? Like you cannot boot EFI without an ESP around right so the idea is that yeah We just define one way how to define that stuff and one directory where you put that stuff. That's it Make sense But yeah, I mean your earlier question regarding grubb is I wrote that patch as mentioned that added bootloader specs support to grub but That was four years ago or something like this and didn't go in and I didn't even want to fight that stuff I think yeah, I would really like if distributions would adopt that I we'd never talked about this public so much It's like only a second talk that I'm doing about this so it's definitely my intention to push this harder and Yeah, I know that this is this is like said lots of people who have lots of time and love invested into grub I think the approach of grubb is just too complex and too fragile because it it's in like at least the way We have implemented this on Fedora and well, it's like a programming language that generates a script that Then generates a script that Jen ultimately generates a script that the bootloader in Executes as a as a touring complete language and just like Jesus Christ. That's so wrong in every way So this is supposed to be the complete anti-thesis to any of this right like because there is no there's no programming language in this There's no no no shell scripting in this. There's nothing. It's just let's just agree on one petition One directory and everybody just puts some stupid files in there the way how RPM and TPKG figured it out like 25 years ago or something If I wanted to modify or pass the kernel command line Parameters and I'm happened to use either type one, but more interestingly type two binary and Can I do that? And is it like an EFI app? Slash arcs or what what is it? So it's a very good question So for type two, right the ones that potentially assigned yeah We probably shouldn't even allow that at all right like if you turn on second measure them into TPM Sure, but I mean then then then you can as well sign them right like that's no different right There is big difference between signed and measured sure anyway, but The model that I would assume there is that if you turn second boot off You don't want the user to make changes to this right? I know you want to so you want to turn on secure boot and allow some changes and make policies based on measure of whether what was But my assumption is generally that that if you lock everything down then Locking down the kernel command line is one of those things that said there's also type one stuff And I know that people also want to be able to use type two without this stuff, right? If so they first of all have of course the option to make the changes interactively right at boot There that's an SD boot implementation feature to change the command line Sure, but every bootloader does that like Grapp allows you the same thing, right? Okay. Yeah. Yeah the other thing is like we have been talking about adding a At least to SD boot now if I variable that is just read during boot Append it to the existing stuff, right so that you can override the defaults if you want And then we would probably add a logic that by default on secure boot We don't do this but on other cases we do what I yeah But then you basically what could do something like for example that when you shut down you add to this if if I variable that Like the at force FS check mode or something then you reboot once and we can do it like this That we have one variable that gets removed on the next boot so that it only applies once and one variable That applies forever so we can very nicely do the same way you've just set the force of s check for the next boot And then not for the subsequent ones without that's something actually nobody could do before right like if you if you want I said FS check for the next boot once and crap. That's messy, right? So, yeah So do you have a Specification support of boot counter and rollback situation This is actually I mean if I had twice the amount of time. This is what it's about. Yes Sdboot support said there's another specification that is very closely related to the bootloader spec that adds all that Where you basically can specify boot this automatically five times give up if that happens then go to the next one my recommendation is read this Documentation it's it's a very simple mechanism. The count is implemented in the file name for us. The reason is For this is because we hope we hope that given the shitty defect drivers in the firmware as we were looking for a simple Way to change the file system that has the least chance to crop the file system if the file system driver is bad And the good thing is that if you rename a file on fat There's at least a very good chance that this can be done was a single block, right? Which we think Yeah, it's the biggest chance, but of course it's a bet but yeah anyway if you want to know a bit more about this read the map page Hey, so two questions one is VFAT is not a requirement for BLS, but for Sdboot VFAT is a requirement, right? Not really, you know on Mac OS like on on Mac machines They actually implement like what's the Mac OS file system HFS plus driver in the firmware But there are gonna be file system requirements depending on for us, okay? It's more even more complicated like this than this So I had this long discussion inside of a red hat in particular where people said oh VFAT is so evil You shouldn't use VFAT. That's not safe. We need to use a proper file system to this I'm not sure how much I agree to that idea, but regardless The firmware will generally only start VFAT. That's fine as I Mentioned there's dollar boot and can either be ESP or can be this other petition if you load a user space File system driver for any other file system of your choice From the ESP before or buy Sdboot Then this allows Sdboot to look into the other petition of that type and looks at stuff there But Sdboot's never gonna maintain an XT2 driver or whatever people want there What we probably will add is is some kind of drop-in director We can add file system drives as much as you like then you maintain the folders system drivers We don't have to give a fuck, but I will look on those petitions. Anyway, I think my time is very much over Thank you very much if you have further questions, you know where to find me


Welcome back folks to Dow.  Gold. Gold contract down $8.70, trading at $19.20. We had Silver down 42 cents, $24.89 an ounce, light sweet crude, down $0.36, $111.76 a barrel notes and bonds. 16 ticks, trading at $122.21, the 30-year full point plus 6 ticks at $148.13, $king dollar. $king dollar couldn't hold price out here today, down 64 ticks, $98.35, Euro 110, yen $120.77, the British pound $132 to one US dollar. We get open, we take a look at the spy, we're going to see what the spy folks. Bottom line, spy was up $5.15, we did volume of $71 million, last Friday we did $106 million, yesterday we did $88 million, today $71 million, you're going to the swing though. The swing point up here is not that much further, about another $9, $4.58, that's where I expect we're going to go, and that's where I expect it's going to more than likely fail on price and volume. We're failing at volume right now, but bottom line, the market wants higher price. And the X100, same setup, meaning the 3Qs, 3Qs up $6.88 today out here, big contraction of volume. We did $85 million, yesterday you did $73 million, we only did $60 million. That being said, guess what, your swing is laying out there at $370 million, and this is deviant as you can get, meaning that you can take that type of retracement on the way up. Now the cool thing is, inside of the spy folks, okay, I want to show you this, because inside of the spy, bottom line is that we, I believe we already did this, we already got up to .618, just, no, we're not there yet. Now the .618 retracement is $452.88.  So this is going to be pretty cool, because if you can get the turn close to the turn, bottom line, that's a nice leg on the way down, and because we did such a .618 retracement, it would be a buy at the bottom for another bounce on the way up. Now it's only the first time of every one of these legs how that works, you know, but it's pretty cool. Have a great night folks, have a safe night, come back and visit Tommy tomorrow morning, kicks us off at 9 o'clock in the morning, great show, have a great one folks.


Hey guys, so as many of you know, I'm currently working on a Sony PVM-20L5 in my shop here and this is a short little repair video. I've got the monitor apart and today I wanted to go through quickly and talk a little bit more about the bezel and how to remove the bezel and then talk more about the anti-glare layer and some of the LED lights in there and I just wanted to go through and walk through this with you in case you wanted to check to see if you heard monitors or the tube you have on your L5 still has the anti-glare layer or if you need to check something for another reason in the tube or just clean it. The first thing I want to tell you is well, I'm taking this thing apart. You have to take your time when it comes to this bezel and really this entire L series monitor. There's a lot of plastic on this monitor. The bezel is plastic of course, but other pieces inside are plastic and the plastic that's in this just seems to be extra brittle sometimes so you really need to take your time and make sure you're not forcing anything when it comes to screws but there are those first four screws two on each side that I just removed on this bezel and then after that I need to monitor this little button here because I don't want it to flop out or get bent and broke. It's on a single hinge there you'll see in a second but you just want to try to get it out and then swing your whole bezel up like I just did because it's going to be attached with an adhesive foam tape at the top of the tube. So I wanted to look first at some LEDs because I had a Patreon member, a patron who was having trouble with the LEDs on his 20L5 where the buttons were very dark and he could barely see or maybe not see them at all. So there's two major things you want to check for but if you have an issue you're most likely going to need to get in behind the bezel like we just did and then try to make one of these repairs. So this is an example. Now this is just the tally light button but these are what the little LED bulbs look like. Now they could wear out if you have them running for an extremely long time and if you've got a high use monitor then these LEDs might need to be replaced so that's something to check and you can find that information in the service manual have the exact part number on that board for that LED if you want to make that change and then the easier thing you first want to check is you want to check the connectors back in here around the tube and then there's a couple spots on this side circuit board where some cables will connect into that and make sure none of these cables have become disconnected because that means you're going to have a disconnection and something and then that could be the reason your buttons not working but if your buttons actually when you press they do something then most likely the bulbs have just burned out and need to be changed. Now you may be able to find a replacement bezel online if you want to order it. Now let's talk about the anti-glare layer quickly. This CRT that I've got here that I'm working on still does have the anti-glare layer. I'm going to zoom in here and try to show it to you more clearly and focus a little bit on it but it's just generally you can tell you'll see a slight line where the layer is still on there it's like a lens but here's another picture of it maybe you could see a little bit better see how there's a line right here in between the glass and the well just right there on the outside of the glass see how there's a line there that's where the anti-glare layer slash screen protector is and so if you just want to check to see if your monitor still has this anti-glare layer you can pull your bezel up and just check under there and see right there and that would be on for any L5 series and then most of the BVMs that are newer are going to have this layer too so you can remove the bezel on there and check as well and you can also check the 20M4s if you have a newer 20M4 but probably most likely it's not going to be on the 24 if you have an older version of that monitor you probably don't have the layer anymore so if we go back for a second to this video I did on the Sony BVM D14 H5U restoration there was actually a chip in the screen on there and this monitor had the anti-glare layer here you can see it again this is a little bit easier to see because I've actually pried up a little corner and all it took to get that up was just a little pull from the tip you know stick my tip of my X-Acto knife in there and I was able to just push the lens layer up a little bit and then slowly pry it back with my fingers until I could get a good size portion of it in the corner and it pretty much came off with one solid pull you will notice the screen is it looks a touch lighter when you look at it but if you have a big chip like that in your screen which sometimes is a case with these L-series and other BVMs and it's worth it to get rid of it and you're not going to see a big huge problem in your screen difference you know if you sit them side by side you may not you may be able to tell if you have really good vision and you're looking for it but if you didn't know it was it was taken off it would be hard to just guess you'd pretty much have to get on there and look at the take the bezel off to check and see on the tube to make sure whether the layer is still there or not the last thing I want to do is show you how to get this thing back together because again you want to take your time when it comes to getting this whole thing back together so you don't mess up any plastic especially like with this button I actually found that it was easier to push the bezel into place and then stick the button in from the outside like I did there and try to tap it in and then get it connected right to this arm that you see up here and then after that I went in and slightly slowly slid those screws back into place those four on the corners so it wouldn't put any pressure on that arm assembly because this stuff you could tell this plastic it's I'm taking care to not damage it when I'm just working on it but if it's been shipped that's that's generally something that that whole assembly can get destroyed really easily and the bezel can be damaged really easily so you want to make sure that you do it right and you know take your time again don't don't you know force this bezel back into place just make sure it's slid back on the frame nicely if you're going to remove it last big warning I want to give you is on the screen here if you do have the anti-glare layer in place don't use any harsh screen chemical cleaners or solvents on your on your layer because that will make it have like a shiny you know blurry effect on there you don't want that so don't use any harsh chemicals or specialty chemicals you can use for that but if the layer is gone you could go ahead and change it over to like Windex and spray it on the towel and wipe it on there with the layer gone but not with it on there so that's pretty much it for this restoration portion this is just a short little video to bridge between the next couple videos there will be more to come on the 20L5 so make sure you've hit the subscription button and if you did miss the other videos there's going to be a link to the end or at the end of the video right here on where you go catch back up I'm Steve thanks again for watching everybody and I'll see you next time with some more retro content


The Autumn Leaves Advanced Copic Marker Class at art-classes.com will teach lessons on coloring five different individual leaves on Neenah Desert Storm toned paper. The lessons included in three hours of video each include one instructional video that has sped up video content and verbal instruction. The other video for each one has a longer real-time video without instruction, so it's silent for you to be able to listen to your own music for inspiration while you color. The lessons can also be completed on other papers, adjusting colors as desired or needed. As a matter of fact, any colors can be used to transform these leaves into other seasons using the same techniques and downloadable line art. In a bonus lesson at the end of class, a drawing is available with all the leaves in it to create one larger art piece if desired. And all the drawings are available at that time at smaller sizes for those who would like to create greeting card designs with their newfound knowledge of coloring leaves. Click on the link in the description for more information on the class, and I hope to see you there very soon!


Hey guys, how are you doing? It's Andy Elliott. I'm here today with Jen Suzuki. Listen guys, the reason why I have Jen on and I want to introduce her here in a second is because Jen started the car business when she was 18 years old. This is amazing. She's a mother. She's got three kids. Guys, she's very driven. She's hungry. Listen, I always say more women need to get in the business, but I want to tell you, everyone that watches this video, male, female. I don't care. You guys need to listen to what Jen has to say. She's built with fire. She literally is very passionate about what she does, which is why she's very successful. Her niche in teaching and training and honestly just motivating people and helping people is unbelievable. That's why I asked to do an interview with her because I love you guys getting the ability to learn from many people and I have had many teachers in my life and I think you guys are going to love what she has to say. So guys, meet Jen. Jen, you want to say hi? Hey. So guys, so Jen's in Colorado. That's where she lives and like I said, she's got three little girls and she for a living teaches and trains in automotive industry. Why don't you just start maybe when you were 18 and I like to go there because I train lots of people at different ages. Some of the guys in the train have been doing this for 40 years. They have seen so many different things and some people are 18 and they're just getting started and some people have been doing it a few years. Just real quick, what made you decide to start selling products? Well, what happened was is that I didn't really apply myself in high school. High school was not my thing, so when I graduated, I unfortunately didn't get accepted into any college, so I was left sort of without a place to go and I needed to work. So I started working in a Toyota store in California. I'm from California and I just I just started figuring out actually what happened was is that I started selling cars. I was working in a very high volume Toyota store and I was thrown out there with everybody else. Probably most people still today without any instruction, any training, just expectations. You got to move 20 cars plus and I'm with 39 dudes and then there's me and I'm like trying to figure out what's going on. So I was struggling hard. I'm not going to lie to you.  I mean, that was tough. I mean, and I'm glad they did because look, I wouldn't be where I am today had I not had these experiences of complete beat down and failure and it didn't take long before I got pissed enough where I did something about it. So on my one day off, I am back in the day, they used to have these sales boards behind the desk, you know, so you could see all the sales people and where they were at in a month. So I started shopping my competitors.  I look at the board. I'll be like, yeah, all right, number one, that's what I want. Yeah, where's Johnny? Yeah, where's Johnny? Yeah. And then I would just I would just work him like the customers worked me and then I'd figure out the closes and I'd figure out his process. And I'm like, I like this. I like I don't like this. Next door, same process. And just go down, you know, every week trying to figure out how do you do this? And it didn't take me long. I'll tell you, it doesn't take long before you figure out what you like, what you don't like, what why it's working, why it's not working.  This is how I'm going to do it. And, and I crushed it. And it didn't take long to figure out you got to connect with people. This is relationship building. This is about doing things above and beyond for people. This is about just being there doing things that are of value for people. So nothing's changed in all these years. But you know, look, you don't know how to do it.  So you can see results. And that's how it started for me, you know, and then eventually, I went to school, I graduated from Northwood University. I want to be a car dealer once I started, you know, you know, getting used to that money, I was like, you know what, I got to own this place. That's what I got to do. I got to own this, but how am I going to own this place? And there was a, there was a college that was private. So of course, they accepted me. And I like, Oh, you can pay for you can go here. And the curriculum was, you know, how to operate a car dealership. So it was four years. And, and I really excelled while I was there. So cars put myself through college. And I continued in the industry after that until, you know, I decided to, to go out on my own. And that was also a total fail. I mean, after having years and years of success and growing, then I got to smack down again. You know, it's, it's and I think even to this day, I think we're experiencing it right now. There's a lot of tough times. But you know, that's part of the growth plan is like, every time I get smacked down, I'm like, all right, all right, I guess I'm just closer to getting to where I want to be, because if you reflect back on all those smack downs, they got you to a better point. If you want it, if you're willing to work for it, nothing ever comes easy, you just have to keep plugging along, you know, because there's something new there, you fail, fine, put yourself up, just resolve up, try again. Now you just one step closer, you can check that off your list. And honestly, like it's always like that in everything that we do, don't you think so? Yeah, I love it.  And I know where my passion comes from. And I'm just telling you watching you and I know that everybody watching you can tell that there's a fire in your belt. Like you have massive dry. And everything you're saying is not only amazing. And I'm just going to congratulate you and you may say, Hey, dude, listen, none of this is easy. It's all by grit and grind. And I got my butt kick. And I kept going that's the deal. You never have to want it. Yeah, what made you wanted at 18? Did your parents talk to you about education, thinking big? What made you think that? I'm just asking, like, where did that just come from? Like, just everybody saying you can't have it?  Or like, what does somebody say to you? A lot of people I feel like need to know how to think bigger. What did you think? I mean, a couple of things. I mean, a couple things. I growing up, I was a fighter.   That's why that's why I didn't do so well, you know, in my education, because I don't know, I just was a fighter. And I think that's the thing is that and that's part of the spark still in me is I'm fighting every day. I mean, I have a different purpose today than, you know, in my childhood. But here's the thing, this is what snapped for me. You've got to find your purpose in life. You know, you've got to serve a passion, a purpose every day. Once you identify what that is, everything becomes so much easier and more meaningful. And that's what helps me stick to the fight, because I know what I'm fighting for. You know, I'm saying like, for me, it's, I want to I want to help people succeed. I have been beat down so many times tried so many things, believe me, you know, if you are thinking about it, I've tried it. And I have so many experiences that there's no better gift than the gift to share, you know, what you've learned and hope that somebody else doesn't have to go get beat down like you did. And they can move past that and move quicker. And so every day I have a purpose to serve people. I have a passion for people I love to see people thrive and succeed. And and every day I fight for it. That is amazing, man. You talk about a beast. This is called beast mode. You know what I'm saying? You may you may you may have your own like, sayings. I always say like, let's crush it. Like, that's my deal. Like, I just want to crush everything. I always call a beast mode. Like, that's just like animal mode. Like, I just want to be an animal. Like you can't take it. Like, I know it's hard to contain me. I'm always like, take it down 10 notches. Yeah, but I love it. But that right there, that's just called the winter mentality. And that right there, it's it's addictive. People love to see people that are in great news. They love to see people that are happy. They love to see people that look like, you know, I'm saying, they're the right people to be doing business with. And I think that a lot of that comes from the why I think the why like why you're doing what you're doing is a big reason why you push through it. You know, so that's why I was like, where's your fire come from? Because that's important, because we got people that like go to college, they make a lot of money, and they do really well. And then, you know, they get into the automotive industry.   And now we've got him. And he's like, I heard there was money in the car business.  And it doesn't matter where you come from, people that come from nothing end up with the most in our business. You know, it's beautiful, rich people can make it, but people that have nothing can make it. You do the right thing for people. You know, in my childhood, I did a lot of wrong things. I mean, I was in juvenile hall at 13. I was stealing cars.  I'm not that person today. And I had an awakening. We can always change. It's your choice. You know, all of us can be good people and do the right thing for other people. And I serve that every day. I'm not shady. I don't screw people over every day. I'm doing everything that I can to see people be their very, very best. And I did have an entrepreneur sort of spirit growing up. You know, I always want to make money. And I was one of the nice things, you know, and I had to pay for it. You know, my parents definitely made me work. They made me work from a young age. And that that's never left me. I fight for everything that I have. No one's ever given me anything. And so, you know, I respect, you know, whether you have it, you don't have it, but there's something you can do with it every day. That's meaningful.  I'm incredibly happy. And that's because I force it every day. It's eating right. It's exercising every day. It's being mindful of negativity and staying away from it in the dealership world. You can be engulfed, consumed by negativity. You could be on social media all day. I mean, it's definitely an addiction I have as well, but I'm monitoring. I'm mindful of it. And I don't stay on it for very long every day.  You know, I want to know what's going on in the world. I want to be connected. I want to know what's going on. But you get consumed by negativity. It will take you down. And look, anybody that's that's surrounding you that's, that's, that's making you not feel your very best.   And that is what creates, you know, eternal happiness. If you do the right thing, be nice to yourself, be good to yourself every day, consume good things that make you feel good and be around the people that make you feel your best. Man, I don't even know if there's anything else to talk about. Like, we could just take what you just gave us. Yeah, we could take what you just gave us. And if somebody wanted a better life, just watch this video 10 times It's pretty much that simple. It doesn't require any money. Right? What you're saying it requires no money. If somebody sitting there broken on the other side of the screen right now or wondering, man, how do I elevate to the next game? Yes, skill will help you make more money. Yes, learning a process. Yes, getting great, you know, on the phone right now, you know, like all those things matter. But none of that matters is if you don't want to do better for yourself and you don't love yourself and you want to go to the next level. And you have to and you have to feel rich before you'll get rich. Yeah, all right. Yeah, totally agree. Look, things are nice. Okay, but none of those things matter. You know, the people, the people that you surround yourself with, those are the people that matter the most. You know, what you're doing for other people, that's what matters the most. There's I mean, this might sound really cheesy, but I honestly like it's something that I see every day. It's something that I live for every day. And it's just it's just it's sounds so but I mean, I love people. I have a lot of love to give. And that's what it is. That's what you see is that I want to give somebody something that I can, you know, and all of these things are free. All of these things don't cost anything, you know, and good to yourself that that that's just time. Yeah, and that's why you're successful because obviously you genuinely want to see people do better. And I feel like that that's not something that is done unless money exchanges him. You know, I'm saying I put out free YouTube videos all the time.  And because, you know, it doesn't it's not about the money. It's about people actually elevating your life. And you do something that no one else could do. I can take what you do. I can steal it right now. And I'm not you and everybody is unique and different in their own way. And if somebody's right now, they're like, man, I'm not as fired up as her, you know, I don't have that drive. You can own that drive, right? So they own that they can take that from you and model it and then you took it from someone else. You've seen other people in your life that are successful or doing well, or just are we're genuinely fulfilled and happy. And you're like, man, I'm going to model that. I'm stealing that from them. And that's what that's what this video is about. A lot of people can take exactly the passion and love and the things that you're talking about. And they can just take it in their life right now and it costs nothing. It's free. You said something audit your circle. You said, don't be around negative people because when you want to make a change, I'll say someone's with us right now. I'm like, man, I want to make that change. What would you suggest about auditing their circle? And they do that being in a circle of people that don't want to see it do better. You have to recognize who's in your circle and believe me, I've been surrounded by a lot of great people and a lot of time stealers. And once you recognize your self worth and where you're going and you've got a plan and actually you should put that plan on paper. You should look at that plan every day. You should put it under your pillow and sleep with it. Wake up with it. You go to bed with it. You know, you can modify. You can you can change. You can be whoever you want to be. You know, but my mom used to say something to me when I was growing up. She's always said to me, you are who you associate with. And I roll my eyes and all this.   And there's a lot of people out there that just aren't they're weighing you down. You got to you got to cut the fat. You know, you want to be the cream of the crop. Surround yourself with those types. You can't find those types. Be by yourself.  You define your mood.  Yeah, that's it. And you have to smack yourself whenever you're in a rut, because you can either play the victim, right, which is easy. Yes. That's so easy. I used to do that. Yeah, yeah. And I've been there before, you know, and you can play the victim. You can talk about how bad your life is. And come on, it's not that bad.  And for you. And like I said, I think that you said you can go do a lot of things that are free. With we're in the internet age, me and you are really close to the same age. So the idea is I didn't grow up on an iPhone. I didn't start out at 18 like you did and was able to log on to YouTube and watch a sales training video or, you know, Google something. I mean, like we had like his sets and then later we had, you know, CDs and stuff that we would watch. Yeah, you know, we watch that stuff and I listened to it in the car and that was that was our training. And right now it's the information age. These people are all right there for free on YouTube.  Totally. It's almost unfair. So I was just thinking, I was thinking about the unfair advantage. If any age, if you'll just go and actually apply yourself. You have to want it. You have, you know, and again, it comes back to how you feel about yourself, your self worth and what you're doing and, you know, every day to make yourself better. And it's following a path. You got to get your path down.   And then everything changes around you. Yeah, I think you will get what you want. You will get what you want. You work on it every single day. Oh, it's just the laws of gravity. You will get what you want. Yeah. Yeah. And I watched that Netflix series is law of attraction. And I'm not telling people to go to watch Netflix. I'm saying don't watch Netflix. I'm saying go and train. But I watched the law of attraction.  You may not be great at it now, but you're going to get great at it. Sure. Like learning.  I don't work out because I love. No, I need it. I like the results. Yeah, you want to get the results. You suffer a little bit because I don't want things to be easy because life isn't fair. It isn't going to be easy. So the more that you can enjoy the pain cycle, the more you actually enjoy it. And you know, you don't feel as hard.  You've been through a lot of smackdowns, you said. And you have your own lingo. And I was thinking about that.   And I was like, Oh, me too.  I'm done. And guess what? Something just started just takes one little spark to start that fire back up.  And you're sick and tired of being sick and tired of being in that place. Oh, I like that.  Don't stop. Yeah, and anybody gets in your way. You just run them over, you know, and I think that there's a lot of people out there now that can take exactly what you're talking about. And they can put that into their lives. If they haven't had it happen yet, it's coming. Okay, we've all we've all experienced, you know, the ups and downs. We all have our stories and we all have our pains, you know, there's, there's, I always call it like door A and door B. We always are faced with door A and door B choices. And it's never the wrong choice. It's always the right choice for you. And if it didn't seem like it was going to be, if it didn't pan out to be, you know, the right choice, you'll be presented with these options again, A and B. Now pick the other door and then see what happens. You know, you just have to keep moving and keep trying and and realize, you know, everybody goes through these hardships.  And I've been in the gutter many times because I'm willing to take a risk. Yeah. And that's hard to take people and bet on you. Am I right? That's it. Bet on you. Yeah, bet on you. When you quit the dealership, the first thing I thought about when you quit the dealership and you went and you started to do your own deal, you said, and here I was in the dealership making great money. Everything's great. I thought, man, hey, now I'm great. I'm good at this. I'm going to do my own deal and next thing you know, all of a sudden you get you get beat down and it's a different world and you thought it was going to be different. And there's a lot of people that enter our business and they see other people who started with luck or success and they're not getting that. So they're like, man, you know, that person's better than me. No ways, man. You know what I'm saying? Yeah.  I see people right now that like come from nothing. And I mean like nothing. And they're now making two, three, four hundred thousand a year selling cars. Yes, I love that.  But you know, it's just like, gosh, man, if people would just realize how beautiful this industry that we're in isn't, but you have to stay alone. Like you said, surround yourself around people that will make you better. And if they're not there, just stay alone. It's better to be alone than be around bad people. Yeah, I gotta have a focus. You got to have a plan. You got to have a plan. You got to work that plan every day. And find a mentor, right? Find a mentor out there. That sounds easy, but it's not easy. That's definitely something I've struggled with my entire life. Yeah, I still don't have one. Yeah, I know me either. I mean, I have influencers and people I trust. Yeah, yeah, I like I watch Jerry Vee all the time because I love him. I he's not in the car business, but I obviously watch Gary Vee because I just love when he talks about do what you love. Be fulfilled. You know what I'm saying? Do what makes you happy. Don't worry about the money. You know what I'm saying? He has good messaging. Yeah, you know, and he cusses like a sailor, but I love his relevant. Yeah, yeah, yeah. So I love Gary Vee. I love everything he says. I love David Dawkins. Uh-huh, yep, yep. God, man, I mean, dude, I played in my so you come in my conference room and half of my conference room, I have Christian music playing over here so I can stay at peace right here.  You know what I'm saying? I've just got two things going on at one time as I'm traveling through my day, you know? And those are, I would say find a motivation. Find something. Find an influence. Yeah, find somebody that can give you a message. And once again, all of these things are free. They're at our fingertips. It's like in seconds, you can find something that motivates you, makes you feel good. You know what I mean? You can get yourself out of a funk, you know? You can find good or bad. So again, audit your social media. I love it. Like you said, audit your negative friends.  And listen, when you audit people out of your life, it's really large. Sometimes it'll tear you in half, but it's where you're at, you know, in a month or two from now. You know what I'm saying? Like you have to do stuff like that.  We've got people all over the world right now that we love that have been furloughed, let go. Yeah. And you're like, dude, just stay in the game. Yeah.  If you're 40, you've been working on you for 40 years.  You're gonna get through it. Everybody, we always do. We always do. It's just, you know, again, get the plan back out. Maybe when you make some modifications, keep thinking, keep moving forward. You know, keep yourself motivated. Keep working towards something, a goal. Yeah, but you don't have to change the target. You're saying change the action. The action isn't getting you there. Don't lower the target. Just change the action. Change the action. And if it doesn't work, change it again. If it doesn't work, change it again. But don't stop and don't quit. We do CrossFit, right? So the main goal about CrossFit is don't quit. You want to finish the workout. That's the goal. Sometimes when you work out that are so hard that you're puking and we're throwing up. And we call it going to the dark side. And guess what? The goal is just not to quit. I don't care if I'm first, I just can't quit. So we write the workout and we don't stop until we quit. And my wife, she does me in the workout every time. Really? Wow, that's hardcore. She's a beast, man. You must be. I have a buddy that just flew in from Ohio, right? And he's here. And anyways, the first day he came in, he's like, hey, I'm here for some self-training. I'm gonna do all this stuff with you. No, no, no, no, no. The first thing we did is we took him outside and we broke him on a workout, right? And guess what?  Well, he said, who am I gonna team up with?   Oh, okay, cool.  I'll text you. We have a sales training group that's called Car Cells Nation. I'll send it to you. So if you wanna join it, you can see some of this stuff. But the main deal is I posted the video. My wife, the last mile on this run, he's stopping, he's puking. He's like, go without me, go without me. My wife's like, she's like, you're not going nowhere. You better start moving. And she knows the rules. Like we don't let anybody stop, we break everybody, we pull them along, even if we get a dragon in the road. And anyways, we drug him home, but he was in the front yard just throwing up, right? And we're just like, yeah. You know, and guess what? I love this. He loves it. He's so happy, he's here with me right now. He's like, dude, it was the best day of my life. But he needed that. You can do it. You can do it. It just proves it. You just keep pushing for it. You can do anything. Yeah, he hasn't stretched himself in very long. So we forgot what he was capable of, you know? And I think that we, yeah, I think like you have, you have more to stretch with you. I know you do. So do I. And right now, people will say, oh my God, that person's really good. I'm playing at about an eight in my 10. I need to go, I've got more levels to go. And I never believe anybody's ever going to be up there 10. I know. That's the problem. You just change the goal. You get closer and you're like, we're going to make a couple of changes here. And enjoy the grind, man. You know, so I, anyways, we've been on a long time. I think that you've made so many amazing points.  And, you know, I never know if I'll meet you in life, but you'd sound like people that we would hang out, me and my wife as a family and the people we train. You seem very driven. You seem really down to earth. You seem mega cool. And man, you have such a good message.  Is there anything else that you want to say before we jump off? No, I think we covered everything.   And it may not be so easy the things that we talk about here today, but honestly, you know, pick one thing and focus on one thing. You know, nail one thing at a time. And then, you know, work on the next. You don't have to try and tackle everything we talked about today. My God, we're talking about years and years and years of learning and progress and smackdowns and, you know, and revivals. And it's just, it's part of life. And, you know, appreciate your days, appreciate your time.  So make a difference, you know? Try to make a difference in somebody's life. And any, any client that comes across your path, you have an opportunity to, you know, do something really good. So that's all we got.   So thanks. Yeah. Yeah, everybody's gonna love it, man. Look, if you guys need anything, comment below. Guys, if you can always find your, where can they find you if they want to find you? Go on Facebook. Yeah. Facebook, my company's e-dealer solutions. I'm Jennifer Suzuki. Any of those, you know, we'll find you to me. There you go. Yeah, she owns e-dealer solutions. So there we go. Just in case somebody wants to reach out and say hi or send you a text. I'm sure a lot of people can contact you. I'm crazy. I throw my cell phone number out there. Oh, me too. Okay, cool.  So my wife should be like, Andy, it's 10 o'clock at night. Yeah. I love all that. Yeah, she's like, you've had 1,000 text messages. I'm always available. That's my deal. I'm always there. People will text me. They're like, hey, I sent Andy a text at 2 a.m. And I got a response back at 2 o'clock at 2 a.m.   It's like, we're just, especially in quarantine zone, like it's kind of all over, but you're awesome and we are grateful for you. So I appreciate you and you have a great day, okay? Thank you.


Well with only 13 more days until Halloween the Brainerd Public Library taught kids how to make their very own spooky Halloween slime. Our Logan Gaye has more on this spooky project with this week's community spotlight. With Halloween being around the corner making spooky Halloween slime was a perfect way for kids to get into the Halloween spirit. Kids always love Halloween this time of the year so slime it's kind of gross gross to touch so that's a perfect time of year to do something like that. This slime was pretty simple to make using common household items. Super easy although main ingredient that makes it all come together is borax which is just a laundry detergent and you only need a teaspoon of that and so you don't need a lot of that and then the other way it's just water and then you can put some food coloring in and then regular good old Elmer's glue. The kids are able to see that with the right imagination some items can have numerous uses. I'm sort of making the slime using your hands just seeing how it makes because glue you expect to stick but this mixed with the borax it just sort of liquefied and makes slime. Making the slime was a perfect way for kids to have fun and be creative. I mixed a lot of colors in it and then it turned out this really pretty sort of magenta color and I was sort of experimenting with that to see like is it going to turn out red is it going to turn out more blue what is it going to turn out. We always want to get kids thinking and doing something outside of the box so we thought it would be fun to make slime so that way they could use some ingredients do some measuring combining kind of things and making something that would be really fun. The Brainer Library will host an event for Thanksgiving on November 21st in Brainerd Logan Gay Lakeland News. If you've enjoyed this segment of Lakeland News please consider making a tax deductible contribution to Lakeland Public Television.


So if you've been following the channel for any amount of time, you'll know that I talk about window managers and scratch pads and workspaces and File managers quite a lot on the channel. I'm quite a nerd really And honestly, I don't think there's anything wrong with that I talk about the things that I'm interested in and it just happened to be a nerd So today what I'm going to talk about is scratch pads now I've talked about scratch pads like I said several times on the channel the last time being Video I made about a program called i3 run now That was a little script created by youtuber and it was really interesting It did scratch pads what I consider the right way it spawned The scratch pads when you hit the key binding and you could hide it just like you would normally and it would come back And with the same key binding it was really good The problem is is that the developer About two weeks after that changed the dependencies from being able to work with both i3 and i3 gaps to just working with i3 now This is the perils of using a script that's written by someone else And I was told at the time by Jake at Linux that it was a bad idea And he showed how to do scratch pads the proper way using the built-in Mechanism the i3 has and I was like it's gonna be fine. It's gonna be alright.  It's amazing And it's definitely does things the way I want to be done and it's gonna be it's just gonna be it's it's fine It wasn't fine that was like two weeks after that. Like I said the scripts changed to where it won't work with i3 gaps anymore So I was out of luck. So what I ended up doing was just using the built-in mechanism for Scratch pads on i3 and that's what I'm gonna show you today How to use scratch pads on i3 now the point in this video is to maybe provide some insight into how scratch pads work on i3 I'm not going to get into a whole philosophical argument about if you should use scratch pads at all Some people use the crap out of scratch pads. I'm one of those people some people They don't see the point. That's why they have workspaces me like both So I'm like let's have some both because frankly I can never have enough workspaces So having an invisible one that just kind of goes away and's not there and You call stuff from it when you need it. That's just it's like christmas is there for me whenever I want it to so Let's just go ahead and jump right into how to use scratch pads on i3 So the first thing we should do is I should actually show you a scratch pad Maybe you don't know what a scratch pad actually is you've never seen in my previous videos before And let me just tell you you're missing out. So basically what a scratch pad is is a Hidden window on a hidden workspace meaning that it doesn't appear ever appear in your bar So they call it the hidden workspace whatever some window managers have a specific name for it But I call it hidden workspace and when you hit a key binding and it could be any key binding you set To any program that you set it will bring up a window So in this case it brings up a terminal and I can hit the same works The same key binding and it goes away And I also have one for pulse mixer. I have one for ranger. I have one for ncmpcpp or whatever hell that's called Those are the scratch pads that I have and they're Kind of amazing. I also have one for neomut, but I don't have neomut running right now But the point is is that if you wanted to have say like an update running if I just wanted to do an update here I could just run my update command hit enter. It would run in the background It doesn't take up a workspace If I wanted to have my my music player playing around in the background I could do that. It doesn't take up a workspace and not only that but it's available on any workspace I hit the key binding on so if I'm on sit right now. I'm on workspace four. I can go to five Do the same thing It's there right and the same thing on my other monitor if I go over to the monitor You may be able to see this but I could hit the same workspace And it would show up on that workspace. That's what makes scratch pads so cool So let's go ahead and go back to four here now This is my i3 configuration file It is not as short as I'd like to be because I have some key binding in here that I haven't been able to move over to sxhkd yet, but someday I will figure that out how to figure out how to do that But the point is is that this these key bindings right here starting With line 13 all the way down here are the beginnings of what you'll need in order to use scratch pads and i3 So these are the key bindings that are going to correlate with the programs that you want to open up In a scratch pad. So you just do the traditional way of setting a key binding So in this case it's bind sim and in this case mod plus b And then what you're going to want to do is tell i3 What program you want to use and you do this by either using a class or a title now You should almost always use a class because the class is going to stay the same all the time titles sometimes change So for example, if I open up that scratch pad and open up b top Here you can see up there at the top in my bar I don't know if you can see this up here where the mouse is see where it says b top that's basically the class And that's not actually the class of this terminal the terminal is ttrm is that's the class but Because I've opened up an application and that kind of takes over the title I think I called this the class. This is basically that up. There's the title not the class my bad Misspoke the point is is that the title changes the class doesn't if that makes sense. All right Anyways, so once you've set the key binding and then tell the class now Let's just say you wanted to find out what the class is so you open up a terminal You can do this now as long as you're running x or you can do this if you're running wailand It's going to be different for you. I don't know how to do it. I'm sure there's a way But you'll have to look that up. So if you're on an x or based desktop environment or window manager, whatever You can do x prop. That's the command hit enter and then you click on the window You want to know the class of so you click on that and it will tell you what class what the class name is Is wm class string and in this case case there are two classes. It's I think it's called they're b and g A and g I don't remember which one is which or what the actual letter but there is two of them Sometimes you'll see in a program where one of them has a small smaller case letter One of them has a little case letter in this case You want the one with a little case letter and in this case alakar is exactly the same It doesn't really matter The point is is that you'll need the name of the class in order to do this So that's how you find a class once you've done this class equals Whatever then the next thing is how you're going to tell i3 that this is going to be a scratch pad So in this case you're going to tell to show the scratch pad and then move it to the position of center So by default this does absolutely nothing without something else So that's the thing that really bothered me about i3 and it really kind of continues to bother me But the point is is that you can't do anything with just a key buying So if I have let's show them I have this open Right and the reason why this is open is because I actually have a line down here This one right here line 21 this basically whenever I start up i3 it will start up an alacrity with the class TTRM which correlates with this key binding if this line went away and it didn't start up An alacrity with a class TTRM at the beginning of my session I could hit mod n all day long and nothing would happen because it's not actually running this Key binding here does nothing it it does not start the scratch pad You have to have a corresponding line to start up whatever scratch pad You are expecting to use anytime you want to use your system. So you have to have these lines down here So these are my scratch pads. I have exec dash dash no startup ID that just prevents things from spinning and then the name of The application now this can be any application that you want So let's just say you had a you wanted to do bit warren something you could do exec dash dash no Start up dash id and then bit warden that would work fine bit warden is the class and you would just then create a key binding for This it would look like something like this. It would look like bind sim dollar sign if you can type mod plus Whatever in this case, we'll just use id. It doesn't matter because I'm not gonna save this and then you do class in brackets equals quotation marks bit warden and then you do scratch pad show and then Semi colon move position Center and I just make sure that when you open up the scratch pad, it's mag dab in the center Otherwise, I think it will show up in the upper left hand corner, which would be annoying You want it kind of in the center? So and that's it all that's all you have to do in order to use scratch pads on i3 It can be any application It can be anything it can be any terminal that you want a lot of terminals have the ability to set specific classes So like oh acrid does like I do here dash dash class and then the the two class names So whether it's a and g or b and g add whatever those letters are I don't ever remember The point is is that you give it to so class comma class And then if you want to open up a terminal based application You do dash e and then the name of the application that you're going to be running every time that spawns Most terminals have a way of doing that the only thing that will change probably will be the flag Some of them use a different flag for this functionality Some of them if they don't have it at all They definitely will have a way to set the title in which case you would just go up here to Whatever scratch pads you were creating change the word class to title and that should work just as well But just keep in mind again That sometimes those titles change you don't want to use A title on a scratch pad that you know is going to change all the time for Example just a regular terminal because then when you press the key binding and it comes up It will look for a window that has that title And if that title doesn't exist anymore Your scratch pad doesn't show in which case it's just kind of lost forever until that title comes back So you want to make sure that if you do use title it was for something that's always going to be titled that thing Uh, you don't want it to be dynamic in that case. So let me talk a few minutes about the downsides of this So one of the reasons why I like that i3 run program so much is because when I typed in a Key binding to get to the scratch pad if the the scratch pad wasn't running already It would actually Execute it. It would bring it up and just start it up. So I never had to have those extra lines there at the bottom Here at the bottom where I execute the scratch pad every time i3 starts up I never had to have that because it would just Open them up, right? And the thing the bad part about this is that if we go back here And I have this terminal. So if I just quit out of this, this is just the terminal scratch pad that I have I only ever really need one so I don't need more than that if I hit Meta q or super q and quit that it's gone. I can go back to hitting Super n all the time It's not coming back until I actually restart my computer and even restarting i3 like this doesn't actually work Now I think I could probably fix that by doing this if I do exec underscore always And write that and then restart it. I think then I would get that back. Yeah, but I think the problem with that solution is if I restart again I'm gonna end up with two of them. I think no, maybe I'm wrong Oh, yeah, no, there's two of them there. That's the reason why you don't exec underscore always So that means every time you restart at i3 you would get just more and more scratch pads called ttrfm or ttrm whatever it's called And you just would keep stacking them up The only way that would work is if that quit Any previous instances of that first and then you know executed it or you can just you know, quit it manually Like that like there But the point is is that if something is closed like you've closed the terminal you closed whatever the scratch pad is There's no way an easy way of getting it back unless you have some kind of script that you write in order to kind of fix that I'm using this way despite the fact that there was at one time a better way of doing this So I'm not quite happy with this, but I'm at least happy enough where I haven't abandoned i3 So scratch pads are one of those things that I have to have so If I use a window manager that doesn't have scratch pad functionality, I tend to leave it very fast So the fact that this at least has it and it's good enough Makes me happy So if you have questions about scratch pads, you can leave those in the comment section below You can follow me on twitter at the linux cast You can support me on patreon at patreon.com slash linux cast Thanks to my current patrons robert sid devon patrick fred kramer Megalyn jexon at the tool steve separate linux character samuel kb tgb Mitchell j dog carbon dated jeremy shawn odin martin Andy ross edwardo Merrick camp josh holy peter a crucible dark benefit's primus and p.m Thanks everybody for watching. I'll see you next time