My name is Michael. My talk is about running and distributing free BSD containers, and more importantly, what can we do to... I claim we make it even better than Docker containers on Linux. I was here in EuroBSDCon last year talking about how I have an open source version of the things I'm working on. After that, I take a couple months of break and actually implement it out, and this is the result I'm presenting. So, the overall of the talk, I would try to have a quick introduction to containers and OCI, and why does it matter when we already have gels and so many kinds of gel manager. And I will talk about when implementing a container system for free BSD, what kind of issue we're running to, or special consideration, and more importantly, the special features that free BSD give us. Then I will do some demo. Actually, we'll do some demo throughout the talk. And lastly, I will talk about some future work and maybe something deeper in the architecture related things. So, let's start with OCI. So, if you're not familiar with OCI, it's basically a project from Linux Foundation. After Docker and all that, people realize they want to have a more standardized specification to define what is, not really what is a container, but how to distribute some bobs, and then how to run them, basically, like the environment variables, different kinds of specifications. And it kind of can break into three really important specifications. The first one is a runtime specification, kind of irrelevant in this case, but basically it's like telling the actual runtime to say like what to run and then what is the required condition. The last two is more interesting, which is the image specification, basically telling it's a manifest to say like what to run. And I think most important is the distribution specification, which is like when we have a container, how do we distribute it? That means like how vendors build facility to support people to push their container. That kind of translates to if we are able to adopt distribution specification, we can just utilize the existing infrastructure, for example, Docker Hub or R3-CL to distribute a previous container, which is the prime goal of this project. And first, like I'm implementing new things, right? So let's talk about what we have already and why I need to implement something. We already have a lot of things to deal with gels, AppGels, Bastel, IOKH, you name it, and we even have Portman now, which is fully OCI compatible. But except for Portman and Port, mostly about creating stable gels.  But in reality in DevOps or in like backend-focused applications, those are just changed a lot. And if you attend Dave talk earlier, he talked about why immutable is kind of important when we're trying to distribute a software solution. Port was great. The only issue with Port is that it's not OCI compatible, so I can't really use it at work. It also requires its own image registry. So it's not really, you can't really use Docker for it to put it in a simple way. Portman basically is the Linux Portman. So whatever you can do with Portman or Linux, you can do it on FreeBSD. It also uses that as a backend, but in this time I'm going to focus on XC, which is the tool I build because I really can't think of a better name because naming is really hard. First of all, when I work on XC, there are some reasons why I don't want to just port Portman or Docker over. Most specifically is that I wasn't realizing someone was porting Portman over, so I didn't wait for it. And also I really want something that plays well with FreeBSD that's FreeBSD native, both in terms of like value and both in terms of like use experience. And I think there's some really important shortcoming in OCI image specifications, which will get into the XC features. And again, I want something more FreeBSD container. That means I want to utilize all the features I have with FreeBSD when I build container. Otherwise, why do I use FreeBSD? Because I want to run features that only exist in FreeBSD. We kind of talk about this. Most importantly, again, it's distribution because when you figure out the distribution, then you have an ecosystem, then people can utilize it. It's not expensive to run. You don't have to spin up your own image registry with things like that. But before we jump into XC, let's talk about when implementing a FreeBSD container, what kind of issue we'll run into. First of all, on FreeBSD, if you use Beehive, Tantab, NADM, they all require you to have access to some kind of device nodes. And on FreeBSD, the way you manage device nodes is that you manage via DevFS, so you really need something to dynamically generate a DevFS rule set. Otherwise, you technically can just create a custom rule set every single time. You need to run applications in Wolfs, for example, Beehive, but it's not really practical. So we need something that we're able to automate it. But in the same time, you don't want image to say, I want to expose all the NVMe device to a container. So you kind of want to have something to guard against it. Some other special considerations are really FreeBSD features. For example, on FreeBSD, we can have a VNetGL and a non-VNetGL. And like the talk mentioned earlier, there are some really nice security features of non-VNetGL. For example, you cannot change the network stack. We can also run some sort of LinuxGL. Those, to me, is a very important feature. We can also do some things like gel set of S. And that is something quite important, because that means you kind of can dedicate a data set to a container that implements a certain solution, or you want to run through the way in a gel. Lastly, it's D-Chase. FreeBSD on D-Chase is really quite nice in terms of doing something related to container versus like you can have on Linux, because on Linux, a container is really a number of C groups and namespace that's no way you use EBDF. You can say, I want to trace exactly this container, because that doesn't really make sense. You can kind of trace a specific process, but nothing as like a whole container, like everything running together. So the last two issues kind of already fixed it. There are changes committed that you can use ifconfig.sj and root.sj to just like change the routing table and configure network interface without having the binary in the gel. And also as part of like port-in-portment, the gentleman also implements like now mount on file, so we can actually use now FS to mount files to file, which is really nice. Okay, come back to XC. It is a container run time for FreeBSD. It actually uses its own image format. It does not use OCI one, although you can understand it. You can utilize OCI distribution specification to upload and pull images. That means you can just upload to Docker Hub. You can upload to Asuri. You basically can utilize all the infrastructures vendors are already providing for containers. The container images I think is improved. It's kind of more self-documenting. If you think about Linux container, you can think about those are containers quite literally without a label. So there are just things inside and you know it's some kind of liquid, but there's no really things like how to drink it or how much you should drink it, things like that. What I mean by self-documenting container images as you see later, there's a lot of like guarding against user from even using wrong. And these are also a number of features that available XC that couldn't available on Docker or Portman. For example, the network king is a bit interesting in terms of setup. There's no such idea to say the container or the container engine take over a network and have some really constraint to it. It's more like just let me know which interface should I create an address on or let me know which interface I need to bridge on and optionally take care of like some address allocation because you probably don't want to come up with IP address every single time when you want to create a new container like a fast cell. You support both VNet and non-VNet containers because I think it's a really good security feature. We get into the sanity tracks later. Those are pretty cool in my opinion. Volume hints as well. Those are really great features that we can add to containers. Most importantly, it handles a generation of database rulesets. So if a container does require access to some kind of device nodes to function, it kind of just takes care of that and then it do it in a quite secure way. It also supports juggling and juggling a set of data sets. So the easiest way to say is that you can run you can distribute as a container. So you really don't have to like set it up. Because they also understand OCI image format in general, that means many Linux containers available right now can just run a modified. Lastly, how can we forget about dChase? There's a lot of effort also put into making the dChase integration with VBSE and containers in general more seamless and I think would be a great addition if you try to use in production or just doing some DevOps stuff. The architecture of XC kind of look like this. First of all, let me take this with me. First of all, you have client which is like the front-end XC command. It basically send commands to a daemon. And this daemon when needed, for example, when you say create a new container, it will fork itself to the other process that do the container run loop. And in between, there's still a communicator via the Unix socket. And when you need to create a new process, it would just like spin up a general process. The reason why to use Unix socket is not just because it's native-ish. For example, when Docker use Unix socket, it's really just running HTTP over. But when XC running is actually sending JSON files back and forth but also sending file descriptors, which later if we have enough time, we can talk about it, which is also a really cool feature when we're able to use some OS primitives. So let's talk about using XC. Well, first of all, you cannot run the container when you don't have the image, right?  There's a few ways you can create these container images. First, like I said before, you can just call them from image registry. For example, Docker Hub, which we will demonstrate later. Or you can convert a gel to a container image. There's a script that hasn't uploaded yet, but basically not just like any gel, but you can also take a hub or just convert it into a container image that is ready to distribute to save Docker Hub or R3. Lastly, that is before I realized the support import. I also made a gel file thing. You kind of have the Docker file syntax that you can build your images in that way. In terms of networking, it's kind of optional. For example, you don't have to say, you must attach to XC network. You can just pass an existing interface. It would just work, but network is kind of nice because it kind of group the parameter in a single place. And it also do a few things like it would create PF tables dynamically. It allows a container to belongs to multiple networks. And the address allocated in that network would just like fill into this PF table or PF tables. It basically brings all the networking down to two questions, which is like, I don't care what you do with networking, but if you're running a VNetGel, just tell me which network interface I should put the address to. And if you're running a VNetGel, you just tell them, just tell the runtime which interface should add the push interface. So we just add a new repair there yet. Does that have support to a network? Yeah, but that's future work. It also handles, again, address allocation. So we give it a subnet. It would generate a new IP address that's not used in that subnet. So you don't have to kind of do the mental gymnastics to come up with new IP address every single time. So let's do a demo with Docker Hub and Linux containers, because that's probably fun. And we can kind of see some shortcomings of existing Docker containers as well at the same time. Let me figure out how to exit this. All right. So what I'm doing right now in this demo is that I'm going to pull MariaDB from Docker Hub. So the Docker Hub MariaDB is really a Linux container. It's designed for Linux, but I'm going to show that we can just run it. And if demo got like me enough, nothing should go wrong. As you can see, it's downloading all the layers and then it's extracting them and then creating a set of data set and all that. In the same time, also we need to register the div ID, but that's in the technical implementation. We don't really have to care about that. So when I try to run it, I basically just say, I see run if I can type. I cannot type. And then I haven't loaded K-Mog yet. As you can see, actually tell me about it. It doesn't just try to run it. There's also other... ... Basically that means if they cannot identify or ABI for the binary, it fall back to a Linux binary because that's what happens sometimes with Go containers. Okay, now we can actually run it. Now, as you can see, we're already running a Linux MariaDB container without any modification, except here's the thing. This happens to all the Linux containers, while containers in general, it really depends on the script and how well the script is written for them to tell you what's wrong or what kind of variables are required. So we'll come back to this feature later, but let's put MariaDB password so we can continue our demo. So I'm going to run it. This time I use the argument that I set a MariaDB password. I'm going to use a re-secure password, which is password, and I'll run it. Now, as you can see, the database is running right now, which is kind of cool, but let's try to see if we can actually connect to it. First of all, I need SSH to my... Excuse me? Well, because I didn't put it to any networks because this demo, we don't really have to use a network, but because I'm now sitting in Tima's in Tima, so that's kind of annoying, but it reminds me to show one feature, which is just like in Docker containers and all that, you can actually detach from this action and re-attach it again. So I would use a script given name to the container, but if I say, xcps, I can see the container is running, and I can refer to it using the id of jrv. I would use the jrv because it's easier to type, so I can attach it back. So here we go, we're back here. In fact, you can have multiple... You can have multiple sessions used to attach to the same session, so it's kind of like a poolman's Tima's in that way as well. Other way really good about it, but back to the demo, we tried to run a client inside the same container over Unisub to connect to this database. So again, I would use xcps, this time we use xcps, I would allocate a new terminal, and then I would say... This time I would use the container id instead, actually, and then I would say MariaDB, and then say, we should deny because I cannot type, because I need a password, and now we're connected to the same MariaDB, so this is running a Linux container without any modification. All right, back to the slides. Thank you. So that's the... Unfortunately, that's probably the least impressive part of the demo. So, before we talk about the more advanced features, let's step back a little bit and talk about the FFS reset management because I hope I've damaged how important the whole thing is, and one class of application that I forgot to mention is that when, let's say you have a jail, well, container, what it does is running fast on the disk, then you obviously need to find a way to pass the device to the jail, and in this case, you really need a FFS reset management. So I think I have a cool demo to... and also D-Trace for that matter, so I have a cool demo to show. Actually, I think I messed up with my slides order, but anyway, we'll just show the Earthen demo anyway. Now, because the D-Trace stuff really run much better in 86, so I'm just going to use a server at home to do it, and XC as a runtime itself, actually also we're just the... Yeah, we'll go back to the slides but we'll do a demo here anyway. It actually registers the D-Trace USB-T so we can actually trace exactly what is going on inside a container runtime. So if you have somebody creating jail, you will show up and all that. You can also optionally fence mark for letting me know the potential security issue, but you can optionally expose the USB-T capability to the jail as well. So if you're trying to run something like an Earthen in the jail, you can actually D-Trace outside the jail as well. So, I will run the stored USB image and install Earthen inside. I will run the D-Trace port first just to show that the runtime is doing something. So we say okay, we're back to our home so when the jail is created you should bring up something, you should bring the names of the jail and the jail ID. Let's run it. So as we create the container, as you can see D-Trace takes it off and then now it says hey, the jail has been created. So if you need to build some kind of special tools to gather some kind of data and show off your father, this is the one way to do it, you don't have to patch it for it to work, but this is a method of where to put more USB ports if that can help you. So we're going to install Earthen. And by the way, as you can see, this time I attached a network because I used it. So I'm going to run YLL, which is the Earthen virtual chain, well, the Earthen shell inside. And now I'm going to trace the D-Trace port. As you can see, it already matched the Earthen ports. So let's try something useful in Earthen, for example, between the Howler world. See, when I run the Howler world, D-Trace is able to pick up the functionality happening in the Earthen shell and then just print things out. So if you're kind of workload, I don't know, maybe you are pre Facebook, WhatsApp, or let's say you depend on MQTT a lot, so you're probably using Earthen, that means when you're running a container on FreeBSD, you automatically get the feature say you can trace the container that way. So this is, in my opinion, a really good way to show the strength of FreeBSD and D-Trace, but the cool thing does not stop here because we have our own D-Trace invention called D-Watch, which basically scripts built around D-Trace. And I built a shorthand for it. First of all, I need to know the container name for it, or ID. This is 5, so I can say XC Trace 5. And you can also use different D-Watch profile, but by default you show the system call. Now if I try to do things inside the container, if I can oh, it's doing things already great. We already see like the system... Yeah, anyway, we already see like D-Watch is doing its thing and then show all the system call things happening in the container. And by the way, FreeBSD was again FreeBSD container and JLR121. That means you can literally just say I really want to trace things happening in the container. And you can see all the process and how the interactions is happening in between, which is really hard to do on Linux if not impossible. So this shows up the D-Trace feature and back to our Let me skip this part so I can talk about... Yeah, I prepared a slide for D-Trace. I just messed it up. But it kind of caught me off guard a little bit. So I guess I have to do the DevFS demo as well. The DevFS demo I have picked is Beehive. In fact, it's just a really simple Beehive. Let me show you the JL file for this Beehive image. So it just installed Beehive frameworks. Forget about this part first. We'll talk about these features later, which are super cool and important features. Notice these directives here. These are actually DevFS syntax. So what here means is basically that this container requires access to some device path. I need to unhide VMM and VMM slash the name of the Beehive virtual machine as well as the VMM IO and entry point instead of using the script, I'm just using something really simple. I'll run Beehive and these are the commands variables to run Beehive. So there's no disk here. There's no network here. Just a really simple example of Beehive running a UEFI shell. And I will rebuild it called... What do I call it? I kind of forgot. Give me one second and you check my note. Okay, here we go. So I'll run it. Yup, if I run it right now give me one second I might forgot to run the name. Ah, I know why. Let me give it a different name because that's an other Beehive already running with this name. So I will call it Euro BSDCon and it also doesn't work, why? Yeah, Demo God really hates me turns out. I know, right? Yeah. I really shouldn't control Demo God. Is it gonna work? It's still... I'm restarting the DJ statement. I'm sorry, I mean the XC statement Q or XC that's probably something... Just give me one second. Okay, it's running now. What? Okay, anyway Yes, what it's supposed to show is that it will show a palm to say, do you really want to add this DevFS rules to the DevFS? So you can kind of review the result in DevFS rules before it actually start the container. So that way you still have the image able to specify what kind of things you need but in the same time you don't lose control of what kind of device you're exposing. Oh, that's just a patch. So it's like the image name and the patch I probably messed up the patch somewhere as well, that's probably why it's not running but five minutes ago it was running five. It's not a gel ID. It's kind of like a G10.9 thing. Go ahead. It kind of gives it a range for you to generate so for example in my current configuration if I can show you it starts from 1000 and by default I think I leveled in a couple hundred so it's not trying to exhaust the DevFS ID. Yep. It is actually doing that but it has the default rules upfront and then put the other rules and the other reason why you have to kind of generate it is because depends on the workflow you want to run you can't really predict what kind of device you really need to expose. You can actually I have experienced adding a guard statement at the end of the DevFS rules as well so that means like definitely you do not expose these device nodes but I've added that yet because let's say you really have a container that runs fast on one of the disks you know those edge cases and we have time later I hate demo god. So all the things I told you to ignore is called it's a feature in XZ called environment variable guarding so essentially what it is is that in traditional container you only provide default value and default value to the environment variable you have to run so if you think back the MariaDB example it has to say well when the script is running that means you have to create a container already and it has to run and then it depends on the script to tell you your missing environment variable and then the container gets destroyed we also got wasted the idea is here we go we embed the specification for the required environment variables in the image format this is the reason why we need to have a different image format than the OCI one but the benefit it provides is just huge and not just that if the required environment variable is required at all but also a good description so for example you try to run a container that's missing some variable instead of the script telling you what is missing and go to GitHub and try to find a solution you as a developer can provide a description of what is the missing environment variables and what is it for so you don't have to go back to GitHub or external documentation and this all inspired by syscontrol.d which is part I think about previous D culture about documentation if you try to do I have an example to try that you know what I think we'll show it later later we have an example showing running Pudry in a gel so I will show that later and this yeah, demo got and this is about Dtrace and let's talk about ZFS also a really important feature so if you're using FreeBSD you're probably using ZFS and what's the point of running container if you can't take some kind of advantage from ZFS so the first one is kind of easier to understand it's called Volume Hints so basically this is again the reason why I cannot really reuse the OCI image format is why I want to it basically allow the developer to specify a bunch of things called Volume Hints essentially what they are hints about the ZFS properties or like the most recommended defaults so for example you're shipping a Postgres container you might have volumes about what's the most optimized properties for ZFS data set so you can specify all that here the mount point thing is like standard thing basically just say where to mount it and if it's required things like that the idea is that now you're not just shipping a water bottle to say don't eat more than two dose a day or something like that and when you try to create Volume for that purpose all this default automatically applies so it guarantees you to get the most optimal settings of course you can override it later but that's the point another thing is the runtime also manage a gel ZFS normally when you do ZFS gel a data set and a gel it will work but when you try to gel it the same data set to another gel it will just detach from the previous gel and move to the second gel so it kind of like it can cause some serious error but the runtime will keep track of in this case runtime will keep track of the gel ZFS allocation so if the ZFS is already mounted in one gel it will prevent it from and I want to show the example of putery which is kind of like multiple things is going on together first of all it needs a ZFS to work it also kind of showcase a nasty gel and also the environment variable things gel file looks like this again we install putery gate and nginx because I also want to show case the port redirection we need to create a directory there because putery complains you don't have this file directory we add an environment that is called ZFS data set basically a set of data set for putery now this content because I want to show how things work inside the gel I'm not going to use an entry script but as you can imagine when you know the value of the set of data set assigned to you you can write some script to patch the putery configuration file so it will just work and also allow tons of attributes like you need nullFS, ZFS all that copy the engine it's config over and now here's the thing we talk about we assign a new volume to say I make a new volume that the Hindi ZFS compression is off and it's off because they are stored in this file so they already compressed there's no point to have ZFS to try to compress it again and I have already built it but I can't build it again so I'm going to run XC build we require network to run this build and I call it putery hero as you can see it's not running the commands in the builder that says I think they recommend way to do this kind of thing is try to use builder and portman to build it because their caching system is much better the moment I know the products is kind of abandoned to implement the caching layer that has too much work on my side okay you can see here it's not actually stuck what is happening here is that it's running ZFS stiff and try to create a new layer for the container and now we are done and I already forgot what name I put it okay it's putery hero so we'll try to run it and before that I will try to create ZFS data set for main putery stuff gel is on seawood putery no ZFS I'm sorry yup here we go and then let's try to also create a volume for the disfiles just copy a previous command and that is hero and I give you a name called hello world now if I ZFS get all you know what maybe not get all maybe get compression and you can see compression set to all and locally set to all so this way you can distribute even the ZFS settings and now we want to actually run the thing this is the right one but I don't want to use the right one I want to use the wrong one something so instead of that that Z basically means pass the data set to the gel but let's remove that it'll be really funny if that does not work okay as you can see because we don't have a value bound to the data set it would just refuse to run and all of these are done without the cost of even creating a container because all of these can create an instantiation and also tell you what is missing and why is it missing right it's like I need a data set for Pudui okay fine I would do that okay that's funny I cannot find the command I would just remove this file because I think it's making it hard to see I would use another port for it and it's not Pudui 2 it's Pudui Euro okay I'm in already so the container is that quick it's there because I don't have a script here let's show the environment variable first but I'm going to do it by hand oh that's really funny alright and then I need to copy my gigantic command basically I try to create which call because it's easy to build do I do full pop-up with direction? I don't care maybe I would and here I'm opening my chrome on the other screen I want to port A0 to A0 anyway it's probably a bad demo because it takes so long five minutes but but because it takes so long I can detach it again like Docker we can detach it right so and then we can also demonstrate pushing an image alright so to push an image let's say I want to push it to Euro demo I cannot type so it has 51 just like R3 container registry I have with R3 so as you can see it's trying to upload things the funny thing is that you can actually interrupt it any time because it's actually controlled by a daemon from actually running a program that also means you can have multiple users try to connect to the same daemon and try to pull an image if they're pulling the same layer that's not going to be a great condition because it's all managed by a daemon and therefore I can seems to be canceling any time but if I attach it back you can see the same thing is actually still running this is kind of both a bug and features that kind of means I also need to implement a cancel command which may not but it turns out both these two daemons taking some time but it's okay we can cancel not cancel it but detach it first and then we attach to the other one 28 yeah it's still going probably a really bad idea yep you basically use for some in this case that's a gel file and you use it to build it and after you build it just copy the things oh of course I forgot to run nginx inside this gel I can accept allocate a terminal bin shell I cannot type really maybe service nginx start sorry about that and then 8080 yeah probably figure out the pf in it probably my map just restarted so I don't have the pf rule on my map but anyway you can use dash p like the port forwarding rule just like you do with Docker in fact it supports the whole feature with more you can even specify multiple interface for it to do the redirection and you can run am I in a gel outside I'm in a gel and you can see I believe I didn't do the redirection but anyhow let's go back and check if it's finished oh it's done already as you know putery builds packages in jails if you want to do a natural gel it also works I think I'm 2 minutes left any questions I don't think I have time to talk about feature working mostly that they kind of limit for first is D trade you can't really trade a container as a container especially the multiple process inside the second limitation is really not limit limitation but like all kinds of specification things like early checking they're just not defining OCI's best so technically is it possible for them to implement that yes so it depends on how well supported by 3BSD the Linux translation for example if you want if you try to run some system or if it requires some system call that 3BSD has not implemented for Linux then obviously it won't run but if you just have like something Linux-ish it could probably run I think I try next cloud and that works to really verify it works 100% right I don't think that is possible because the Linux does not understand the 3BSD APIs and system calls do you have a sense of like when the question is about the progress and version I think it's more pretty alpha there's still a lot of things for me to clean up I mean the print message is really just rust print app right so also a lot of like user experience things I don't suffer from second system syndrome but I try to push it out a set maybe if there are many people to help maybe a couple months maybe if there are not many people to help maybe longer yeah it's on github any other questions yes the question is can you run multiple container and have them to interact with each other that way is yes because they really just like talk to each other over the network but unlike the Docker container by default XC does not come with DNS server you can override DNS but that's a feature in XC you have to manually use it that basically say you put a couple holes in the same holes group and each container can belong to multiple holes group that it will write the IP address I mean it will put the name to IP address mapping and write to the holes file of each not really socket they are over kind of network I think not but you can always monitor it that is I haven't experienced that yet but maybe yeah but that's also other future work thing I want to do which is about having kind of breaking the wall to have one container tell somehow magically tell the runtime say I need to connect to other container kind of things like that so one thing interesting about XC if we go back to the XC architecture so this is actually not it's like unit socket but there's some abstraction built on top of it called channel so the damer actually can create multiple channels that means multiple unit socket listening and my goal actually is try to make it also multi user friendly so each channel you can attach some kind of ACL thing going inside so you can kind of expose part of the features to some gel it's actually important because that's how if we do support NASA XC because you can't change the FFS rules inside a gel so they have to have some way to talk to the prison zero to deal with the FFS things yep well thank you


What's up guys and welcome back to the JohnQ channel. Thanks so much for watching. In today's video I want to break down how I train at home with my rifle because I've been getting a ton of DMs and Emails asking Johnny How do I train at my house because if I go train out to the range?  Well, I might have an easy solution for you That's affordable and will help you grow in your shooting full disclosure I am being paid to make this long form video and a few YouTube shorts for them I will link them down below for you guys. Okay, so really quickly for those of you who don't know what Mantis is So this specific model is the Blackbeard by Mantis and essentially it's a BCG and a magazine That's electronic, which means you take apart your rifle. You insert the Mantis at BCG or bolt carrying group And then once you're done with that You place your magazine You make sure it's charged first flip the safety off You can safely use a rifle For training inside of your home The trigger resets every single time that you press it And as you saw that green laser allows you to track where you're shooting and helps you get a little bit better so I've been using the Blackbeard by Mantis for about three weeks or so and Just so you guys know like it's actually a pretty decent training tool I know that trying to find time to go to the range can be difficult But then also you you know factor in the ammo prices and it can get pretty pricey But something like this has definitely helped me train Better and it's allowed me to train my trigger presses and trigger pulls as well as my reset and getting up to that wall Now who trains with this? Well law enforcement and military groups train with the Mantis Blackbeard I think at first it might seem gimmicky Here's kind of how I think of it When you start spending money on your gear and start investing in what you want to train with Something like this can go a long way. Let's say you want to practice in your house some CQB drills Well, something like this might be perfect for you set up your BCG Interth the mag set up some targets in your house and then you're good to go You can also set this up with your app on any device to make sure that you train Well, which in essence makes you a better shooter and you get better training overall the setup time on this is very very easy It takes literally one to two minutes to take apart the upper and lower you take out the BCG You insert the Mantis BCG and then you're ready to go I also love that you get that instant feedback from a system like this Now if I was training without the system nothing would come out There'd be no instant gratification from a ding a laser or even steel But when I train with the Blackbeard by Mantis, I see that green laser hit my target Which gives me that instant gratification I want and I need for my training now Here's the question that you've been asking yourselves does this system make you a better shooter I believe this system allows you to become a better shooter. Here's what I find with shooters all around they tend to Just slap that trigger when you start slapping that trigger Your rifle starts moving back and forth or left to the right I realized with this system in my house when I'm shooting my own targets It allows me to reset and refocus and redial on zero when I press that trigger Especially when you start introducing high stress scenarios This will help you not slap that trigger and maintain your composure and you know where zero is on your rifle Of course something like this won't fix the actual mitigation of recoil when you're shooting five five six or two two three That's something that you have to go out to the range and do for yourselves But at least this gives you some sort of base and knowledge to train with what I want to do is train another month with This system and then go out to the range and compare what it's like shooting five five six After I've been practicing with something like this even in the short time that I've trained with the blackbeard system I've noticed my rifle training out on the gun range has been a lot smoother and more efficient But what do you guys think is this blackbeard mantis system good for training? If so comment down below if you do have the system Let me know what you think about it and how it's worked out for you in training and real-world scenarios as always guys Thanks so much for watching and I'll catch you in the next Johnny Q video. Peace


And this is Andy Faulkner's mum. I'm the mum. And you know your way around the kitchen better than me, so we're going to... Maybe, I don't know a tour of that. We've got some carrots and we've got some potato chips and pumpkin. Oh, pumpkin. Yeah, and we're going to put something my grandson loves. And it's sweet potato chips. Get it off the shelf and put it in 10 minutes later, it's ready. Oh, really? 10 minutes? Oh, nice. The chippies are ready in 10 minutes, vegan chippies. The sweet potato chips, they're very good. It sounds lovely. Yeah, they're nice. Have you seen these? I haven't seen these before. This is a feast. It looks wonderful. Feast on this festive ring. Yes, and it is oat and pecan-based filling. Sprinkle with sage. It just sounds delicious. We'll take that out. And Julie, what do you think of this one here? Tell them what it is. Yes, yes. This is a Christmas roast succulent soy protein infused with fragrant herbs and spices and finished with a sweet and tangy cranberry glaze. Oh, yummy. That sounds fantastic. This is plants with a bit of attitude. Oh, very good. Which sounds very nice. Let's get around. I hope you didn't have to make the glaze for this. This is wonderful, isn't it? They've marinated it for us in a batch. Yes, yes, it's all ready. You know where we got these from? Did you get them from? Woolies. Yeah, that's... Woolies have... Woolies Australia. Woolies. And fray. They are very cool as far as looking after us, looking after vegans. They have a lot of vegan meats. And how long have you been vegan for, Julie? Only ten years. Ten years. Tien years. I changed. Ten years? Yes. Only ten years? Well, yeah. That's not long. Only ten years. That's not long. That's longer than me, nearly. I feel very guilty. When did you go vegan in 2013? About then. About then. About here. I saw a show on television on the ABC which showed the large animals, you know the cattle and so on and being herded up a race and one poor animal had broken its leg and this terrible person was prodding it with an electric prod as it tried to get up the race and it could hardly move with its broken leg and he forced it up and I thought this is wrong, something has to happen and the next thing Andy came over and he became vegan and I thought that's what I can, I didn't know what to do but I thought I had to do something and he came over and I thought that's what I'll do and also at the same similar time my grandson had become vegan and he was with me a lot and I was giving him meals quite a lot and so I thought I'd join him and I haven't looked back. Wow, what a lovely story, well it's a lovely ending story isn't it, it's a lovely, never ending situation. Lovely outtimes to a terrible, terrible story really but I'm glad that you took the change that you needed. Yes, yes, yes, yes I am too, I'm so sorry I didn't do it earlier, Kate leave that there and we'll put that on. And what's this one here, tell the people about it. This is mine, this is what I got, this is the veggie roast and it is so yummy and you can make a glaze to put on this too. This one you put in earlier and you put a bit of relish on there. That's right, that's it, simply green tomato chutney on top and you can chop that in half before or after you cook it and then you can have two meals because it's quite a lot in one roll. It's nice, I can vouch for this one, I love it, I eat it cold sometimes, it's lovely on sandwiches, it's lovely, you put in your little flatbread or your sandwich, beautiful. It's really like a cold sandwich meat as well, should we do a taste test together? Yep, yep, yep, yep. Let's get to cooking. So we've found some vegan gravy as well too. Oh did you, we've found the vegan gravy, God love you. Okay so, so what do we do here, do you reckon we've got any glasses? Because I know you've got some glazes which is nice, we've got a primary glaze for this but we'd also maybe we'd want a little bit of gravy too because we know a lot of people love a bit of gravy. Yeah they do, they do, there's no doubt about it. Tablespoons of greens roast meat gravy in large jug and add one cup of boiling water. This is easy. It's pretty easy to do, isn't it? Yes, oh gosh. And it's good, it's so good. I think it's a state of mind, it's what you, it's what you put, you know, you want to put into your body. Exactly. And once you get past that, I'm putting different things in my body now and you do it and you don't think about it, how long it takes or doesn't take to make. Exactly. That's fine. But it does take no longer and I know from the many years that I was doing it, it doesn't take longer than a normal, no, exactly right. Anyone like Julie out there who's around Julie's age when she went vegan, it's never too late to go vegan. No, definitely not. Okay, that's the green tomato chutney, we have to put, have to open that. Okay, you want me to give it a crack? Give it a crack and I've got that there if you can't, oh you don't need that. You don't need that. Yes, that's all that protein mate. Yes, that's all that tofu. That's all that goodness, that's all the goodness. That's what that is. It feels like it's got the vegins, hot sauce in the door really. My stepfather used to put veg in hot sauce and gravy, we've got veg in, we've got all the little things, all the little… You know what? Is it okay? Does it need a little bit of… It's got that veggie stock roundness, got savory flavour, it's just salty enough. Oh! I think they really nailed it and whatever, whatever um, metric you do some of the water Yeah just a cup of water, I use the 250ml. So you use a coffee mug? Yeah, yeah just a coffee mug. It's perfect. Look at my thing turned out. That's from me drawing in the oven actually mate. Oh gosh. I think maybe we'll do a little break for some turkey facts. Turkeys are intelligent and sensitive animals that are highly social. They are affectionate and create lasting social bonds with each other. A lot like dogs and cats. Turkeys can recognise each other by their voices and are known to exhibit over 20 distinct vocalisations. A male turkey's gobble can be heard a mile away. Female turkeys don't gobble but they do purr. Just like humans, turkeys have good and bad moods. If a male turkey's throat and head are blue, this means that they are happy or calm and red indicates that they are distressed or angry. Turkeys are protective mothers. When a turkey's eggs are getting close to hatching in the wild, the mother does not leave. Instead, she stays with the young at ground level to keep them safe and warm till they learn to fly and roost in the trees.  Let's respect their interests by leaving turkeys and other animals off of our plates this Christmas and beyond. Back to Cooking with Julie. Andy Faulkner, savepoppy.com, we're at your mum's house right now cooking muffins for Christmas, but who's muffin tall? Tell me more about muffin, what was muffin a? This is muffin. Hey muffin, muffin's vegan. Plant-based. Plant-based. Yeah. And muffin has been quite famous in Pitt Street isn't it muffin? I used to do a lot of activism muffin. He's been to university's many times, that was his main job, helping people. We'd talk to animal lovers who would just be patting muffin like crazy and then we'd ask them about pigs and cows and chickens and fish and ducks and turkeys and lambs. Wow.  True. And muffin would help them make the connection and realise that they would all suffer exactly the same. That's muffin. Yeah. So they had to be vegan. So muffin helped a lot of people go vegan.  Oh dear. This is muffin's Christmas dinner. Wow. Muffin will have this for dinner. And how old's muffin? Thirteen. Thirteen years old.  Been on the plane. You're 91. 91 in dog years. And you're still looking like, still looking strong. There you go. I would like to eat some of this too. Vegan. So. Fit for us. Fit for us. Fit for them. Instead of giving them the slaughterhouse scraps of the tumours and all the cancerous, you know, body parts and the entrails. Look how generous these servings are. I don't know. Is there going to be... There we go. Are we getting... That looks like a joey serving to me. I reckon maybe I'll... A joey serving. Yeah, so these are our lovely little round one there. There we are. There's that lovely one there. Look at that. That's a marinated one. Here we go. Oh, lovely. Here we go. Have a look at it. You've sliced the roll or two in your time. So you can have one piece to share between you. We have pumpkin. We have potatoes. We have... Carrots. We have sweet potatoes. And we have beans. Wow. There you go. Thank you. Beautiful. All right, let's go. The first one, here's the glaze. Oh, yes, I got that one too. Okay, let's go. That's very nice. This is very tasty. It's got good texture. It's very savoury. It tastes more meaty, doesn't it? It does. It does. And the sweetness of the cranberries. And the great... Yeah, they're nice. It works very well. Works well. Works well. All right, so what's this one? This is the... This is a little... It's like a wreath. It's got a wreath and it's got pastry and I'm going to fill it. And savoury and nuts, you know? Mm-hmm. I like this. That is it. That is it. I think that's nice. That's a real Christmas-y type of thumb. The pastry just makes it Christmas-y, don't you think? Yeah, it does. It does. It's special. That is delicious. It's special. And then we've got... Finally, we've got the roll that you're used to this roll, but I'm not. Yes, yes. Well, I am, but not like this with the glaze. Yes. With the relish. Yeah. We have to put some more relish on it too. That is a winner because it tastes like... Like a turkey roll. You're right. So this here is like a... You'd never know it was a veggie roll, would you? You'd never know. No, it's like a turkey roll. Instead of killing the turkeys, try this one. All right. Which one is your favourite? Same. I'll go the wreath. And these two are a close tie because... Very close. Yeah, yeah. Different taste, different texture a little bit. This one's good. If you gave me a choice, it would be this one. Yeah, but I think so too. But this one is good. That's good. I don't want to say that this one's bad. This one's next and this one's third. But they're all lovely. They're all winners. And there's no animals in there, so this is even better. No, so it's better still. And let's try your cauliflower here. My cauliflower. White sauce. That's my favourite. That is rich. My favourite veggie is cauliflower now. I love that. All right, I'm going to try the gravy. And the veggies, they really should be the star of the show. They've been themselves, but... Yeah. That gravy is so good. You know? All right. So after this, we'll taste test the Christmas dessert. Boom. Cream on the brownie. On the brownie. We're going to do a taste test. Which one do you want to go first? I'll go with my brownie first. You've got brownie first? All right. Brownie first. Sticky. Very, very nice. Chocolatey. Very good. I want to try something with custard. Custard and... Should I take this again? No, no, chocolate. So this is a plant-to-tude chocolate cake. Right. Hashtag not sponsored, actually. Just bought it because it's vegan. And we've got the creamy... Oatly oat cream. That's nice with the nuts, isn't it? Yes. And the cream on top. Very nice. Hazelnut. All right. What about the ice cream? Did you try it? Very nice. Well, all right, now we're going to go... What's your favourite? I think this one. I already like that one. It's hard because they're all good for different reasons. Like, I want vanilla ice cream for what I want it for. I like the custard for when I want it. And the cream is good for different things. But... They're good, too. No, go truffle. So if I was going to... About there, just like that melts in your mouth. I love it. But I could have a truffle and ice cream with my cake. Mm-hmm. Mm-hmm. Yeah, that would be a sublime. There we go. Beautiful. No dairy cows harmed? No. No egg laying hens harmed and killed either? No. That's all plants. See? Very good. The way it should be. We also got cherries, but everyone knows they're vegan already. Yep. Do you have any Christmas message you want to leave people with? Mm-hmm. Maybe this Christmas will be a great time to think about going vegan.  And of course the animals will be the life. So it's all good. And Merry Christmas, everyone. Merry Christmas. Christmas is a time for love, compassion, sharing, peace and justice and equality and respect. And we should apply those principles out to non-human animals and stop causing the most suffering, violence and death you could imagine by killing innocent beings. It's not consistent with Christian values. It's not consistent with the values of any good-hearted human being. And we should all evolve past the mass murder of animals and the vegan.


Welcome to intro to Java with an emphasis on AP computer science a with me Tokyo ed tech today's topic writing objects And we're gonna be working on non-static methods. Let's take a look at the concepts will be Focusing on so as I mentioned non-static methods, we're gonna take a deep dive into constructors here all along We've been using what's called the default constructor, but today we're gonna actually go ahead and make our own constructors And then we're gonna do an example with a printing card So like for a deck of cards and then we want to learn about something called the two string method So let's go ahead and get started. So let's let's go ahead and take a look at the person class This is from a previous video. So our person has two private attributes a name and an age So we have a string and an int we have our public setters and we talked about validation in the other video We have our public getters now These are also non-static methods and by non-static they refer to a specific object So let's go over here and just kind of do that for review. So we've been doing this all along. So a person iron man equals a new person And we'd say iron man dot sets name Tony Stark and we could do if we wanted to we could also do you know iron man dot sets age And that would be 53 and so what we want to do here is we want the iron man object To be able to introduce itself So I'm gonna go back over to here and I'm gonna add a method down here So it's called non-static method And so it's gonna be public because again, we want this to be accessible from a different class Void because we're not gonna return anything and it's gonna be say greeting and we're not gonna send any values So it should be really simple system dot out dot print ln and Just say hi. My name is quote plus And what we just do here is we do name Plus quotes don't forget the space and nice little period there Semi-colon Okay, so let's go to compile that make sure it piles so far so good So now what I could do is over here. I can say iron man dot say greedy You know how that popped up because the computer knows it exists So if I run this you see hi, my name is Tony. I put an extra space in there Oh And hi, my name is Tony, so if we had gone ahead and done Captain America America Steve So we can do here I'm so copy and paste America American Captain America Dot say greeting you can see that it's a little bit different. So because these are non-static methods They refer to a specific object so in this case the name is The name of that particular object so in the case of iron man It's Tony case of Captain America. It is Steve. Okay, so when we say non-static We mean it refers to that particular Object and not part of the you know the class itself So now we want to move on to so that's what we've done before it's based There's nothing really new there So we want to look at this class here called card and we're gonna be working with you know playing cards like I usually use The ace of spades as an example, so I've got a class. It's got a private attribute for names Got a private attribute for suits We're gonna be talking about constructors today. I've got my setters and I've got my getters So let's go ahead and create a card. So I'm gonna say card Call card equals new card And I can say card dot set suit or set name and String and I'm gonna do card dot set suit And I actually copied it over here So I had it and that is the ace of spades and so if you're a Motorhead fan, you know why it shows that So let's go ahead and compile that Okay, now there's we're not printing anything out at this point, so we shouldn't see anything so You can see here. We've created this card object And what we haven't really talked about before is how that works So if I go over to card dot Java, there's a special method Special type of method called a constructor So there's one that is like this And this is called the default Constructor so we don't actually have to put it in Java will add that for us So this is the default constructor default So this default constructor takes no arguments. So the signature is empty So in here right now there's nothing we could put some code in here. So what happens is when we construct a new card This method is called so I could put in here system dot out print ln. I am a new card Just to show you that this is how this works You see here. I am a new card because when we did this You know instantiation this method is called So what we want to do so with that knowledge is we can make our own non default constructors So I'm going to go ahead and comment that out So what we want to be able to do is card card not dart card equals new card a and That's paid What we want to be able to do is this So now you can see that the signature has changed Okay up here. It was an empty signature. So this just goes back to method overloading This is just another type of method overloading, but it's it's a very specific method called the constructor So this is a string and this is a string. So if I go over to here I can go ahead and make a new constructor notice. I didn't put public here I didn't put void or any that kind of stuff. I just put the name of the class So string name and string suit So then what I do inside of this I do this dot name equals name This dot suit equals suit So now I've got two constructors One with an empty signature one with a signature of string string So in this case I've got string string. So it's going to call the non default constructor Let's go around that and now we don't see anything Because this didn't this didn't print out because we didn't go here. We went here So let's go ahead and test this So what we want to do is we want to be able to print the card So what I want to be able to do is go like card dot print card like that So I'm going to go over to my card class I'm going to go public void print card Now what I could do is something very simple. I can do system Dot out that print l n this dot Name plus this dot suit Let's compile that Let's run it and you can see now card dot print card actually prints out asus space That's nice. I want to make it look really nice So what I want to do is I'm going to do a little bit different here.  So let's go ahead and do that And so what I want to what I want to happen. I'll show you here Is I want to be able to print it out like Basically, this will be spade Actually, this is actually how I would actually code this because I want to get the formatting right spade and then this is an ace This is a spade. So let's go ahead and test it real quick Okay, so you can see ace of spades, which is which is what we wanted Is that what we wanted? Yeah, I guess that's what I wanted So now of course if the card is in ace of spades, that's not going to work So what we got to do here is I'm going to replace this with quote quote plus plus this dot suit I'm going to replace this with quote quote plus plus this dot name And I replace this with quote quote plus plus this dot suit Let's go ahead and compile it test it And you can see it's still working. Now, let's go ahead and test that with a different card. Let's go ahead and do the Jack of spades just to make sure it's working. Oops. Just make sure it's working how we expected compile it And you can see that we have jack now I should probably test this with one of the other ones, but we'll let that one go I like to ace because we don't like the ace of spades I was actually standing on the line with Lemmy one time at the Bucharest airport. I was like three feet away from Lemmy a legend um anyway He was ordering a glass of wine As befits a very cool rock star. Anyway, uh, so non-static methods So basically you see how everything that pertains to that card object as much as possible We want to put it into that card class That's part of that encapsulation idea where the object Is is a self-contained unit and because because we've done it this way I can take this card class and put it into another program and it'll work exactly as You know exactly the same and this this really helps with code reusability And yeah, that's that so our final topic is a method called to String this is a special method in java and uh All objects have this two string method. There's a default two string method that is included for you So let's go ahead and try this. Let's go ahead and do system dot out dot print Ln print ln card So this two string method is a special method it is called when we print an object Let's go and see what it is printed. What do you think is going to be printed? That's that's a good question, I suppose Can you see here? We got card at 764c12 b6 now that will that will differ Uh on your computer, but you'll see something very very similar to that And what this says is this is a card object at I believe this is some kind of memory location It might be or some kind of reference to that particular object. That's why it changes So this is the default output But what we probably want to do is something like this Is to make our own two string method so public uh string two string And how it works is we return what we want to be printed. So I'm going to go ahead and do this dot suits or this dot name plus this dot suit So that allows us to control How an object is printed So we go ahead and compile it And let's go and see what happens here And you can see we have the ace of spades So you need to know how to be able to write a two string method again We don't put system dot out dot print line this plus name this plus suit. We return a string So that's kind of important now we could actually you know assemble this we could return instead of printing it We could add all this together use the new line character and return that as two string That would be an interesting exercise. I think if you were to tackle that Probably a good practice So that is that that's basically what we need to know about non-static methods So these non-static methods are attached again to the objects So each object has its own attributes its own set of Informations its own state you might be here called And then we have default constructors Where we don't have any attributes We can make our own custom constructors that are called based on the signature We can add non-static methods to our objects And we have the specific method called two string that always returns a string Is how we want to print out our object So that I think is yeah, I think that was a good that was a good session. Uh, thanks for stopping by take care


Hi, it's Bridget. Welcome to Above Life channel. The purpose here is to inspire your spirit and to fill you up with hope. This week's Afterlife video is going to be a great one, of course, because we are going to be chatting with Freddie Mercury in the Afterlife. Yep, I said Freddie Mercury. He's been quite popular and I can see why because he's so sweet. His energy is so good. It's so nice. He's very sensitive. He's very caring and he's fun. He's really fun to be around. So I, it's a pleasure. It's totally a pleasure for me to welcome in Freddie Mercury in the Afterlife. Now today, we have a topic-based conversation. We are going to talk about spirit guides. I'm going to ask him about spirit guides and he knows that. So that's part of the content of our conversation, but we'll see where else it might go. It's hard to tell with Freddie. And he wanted me to wear sparkles. It was funny. I just did a session this morning and I did another channeling and I could feel Freddie's energy around.  I just had a simple black shirt on. And he was like, sparkles, sparkles, sparkles. I'm like, OK, let's do sparkles. So this is kind of sparkly. You can't probably tell that much, but sparkly, sparkly. So all right, I wore this one in my Elizabeth Taylor channel. And so that's also on above life channel. She was one of my first early on, like in the first month or so that I channeled. So good taste, huh? Good taste, right? So nice to have you here. Your energy is just awesome. It just tears me up. So I, Freddie, I would love for the viewers to be able to feel your energy, your sense, your energy, because part of what connects us is our sensitivities, the way we feel energy.  It means that's how you're using your intuition. That's how you're connecting with your own spirit. And if you want with spirit guides and afterlife, right? So let's can you can you get really close? He's like, going to sit on my lap. He says, no, no, I won't do that to you. He's, OK, so Freddie Mercury is going to get really close. I don't even know what to do with my hands because I can feel spirit energy. He's he's like, OK, he's being silly.  He's like, can you feel that? No, for you guys, he's so playful. He's like, no, no, no, seriously. He's like, oh, getting really close to the camera. Give yourself a moment, really, viewers. Just feel this energy. Just close your eyes. If you're not driving, don't don't close your eyes if you're driving. If you're listening when you're driving, but just feel the energy that he brings in. Where does it come to you? Does it come in your heart space? Does it come into your tummy area, into the core of your body, like your intuition, your heart or your intuition? Those are probably the most likely places that the energy will be felt. He just seems like that. Like he's much he's actually kind of for me, he's in between my heart and my spirit chakra. So in between my heart and my belly button, he's right here in the middle in the core. It's just really beautiful. Thank you for that. And he said that he's it's done. He's like, am I too close? I'm like, well, you can get really close. It's fine. We can get really close what we're chatting so that maybe those of you who are watching can really feel his energy. That would be so great. Can you want to? I'm just going to slide. You guys are going to think this is crazy. But I usually have a chair. I'm in my kitchen. This is where the magic happens. It has the best light in the house, too. So that's why I do videos that way during the day. And so I I set a chair for for spirit. Sometimes sometimes I have stools, too, by my kitchen countertop. This stuff is over here. And it's kind of like an open format here in the house. And sometimes there's a stool over there's always a stool over here. And so sometimes they'll sit on the stool instead. And I'll just kind of connect and let the energy flow. But Freddie's like right here. He has to be close because his energy feels so good. You guys feel so good. You're super popular now because of the movie, I think. And he's saying, well, and somebody hasn't seen it. I know I haven't seen it yet. And it's going to be out of the theaters pretty soon. I know, but it's been just such a busy holiday season. It came out during the holidays. Of course, I had time to go see it. He says, oh, because someone went on vacation. Come on, the first vacation with my husband in 10 years. I think that was well earned, Mr. You know, he's like, yes, yes, you must have time with your lover. He says, all right. So, no, I haven't seen the movie. But do you think that that's why I mean, that's got to be intellectually and like, that's got to be why you're just so popular. He says the music, the music is so it. He says it's so good, but good isn't the right word. He's saying that expresses it as a music is what touches people. It really it's the message. It's the it doesn't it's like a it's legendary. It's like a legacy kind of a thing, but he's not saying those words. I can't quite get the right match, but he's saying it's the music. It's the music and you have band members. Your band members are still around. You have band members and they're still singing.  Oh, oh, let's ask. So I want to know what you think about Adam Lambert. I understand that Adam Lambert was one of the singers then for Queen. I mean, I don't know if he still is. I remember hearing that I think like a year or so ago. Maybe might have even been like 2016, 2017. This video was recorded in 2019, early, early in the year, the new year. What do you think about that? I think he's Adam Lambert. He's got to be himself. He doesn't have to try to be me. You know, he's not acting. He's not portraying me in a movie. And he says, so he's talking. We're talking about two things. We're talking about the movie and we're talking about Adam Lambert being in Queen. All right. So do you have any opinions or views and after life? I know you don't have like the ego mind necessarily. But as the Freddie that you were as a person, how do you feel about Adam Lambert's work with Queen? He says, I think it's acceptable. I think it's acceptable. He is definitely an artist, definitely creative in his own rights. And I think people should accept him and allow him to do the work that he is on earth to bring forward and to do. I think there are many choices to be the front man for the band. And I think variety would be good also. Now, when you say variety, I after your death, and I don't know how soon after, I'm not sure, but people send me clips of stuff after when I do channeling and stuff. And people send me clips. I'll email me and send me clips of stuff. And one of the clips that someone sent me, I actually watched. It was awesome, totally awesome. It was George Michael. It was like a tribute to you, a tribute to Freddie Mercury in Queen.  He referred as soon as I say Freddie Mercury, he says Queen. So I say Freddie Mercury, he says the band. Like he totally redirects back to the group, the harmony of the group. I appreciate the bond. And the loyalty and the devotion to the community, the group of the band.  And we were together a very long time. And that was the closest thing I had, you know. Just such a support network. And I'm very unthinkable for that, he says. All right, so. So I saw this clip and it was George Michael and he was singing somebody, somebody to love. Someone to love, somebody to love. I don't know you guys, the actual title, somebody. Thank you, somebody, somebody. Kind of laughs like body. Get it? Ha, ha, like body, ha, ha. Because he doesn't have a body, somebody to love. Maybe we should amend the title. So love. All right. What did you, how did you feel about that? Is that kind of what you were referring to a little bit? He says, you know, George is here in the afterlife. That's what he's referring to. George is here. He said, you know, George is here. You've talked to George many times. Yes, I have. And I'm not great with the accents, Freddie. I'm not great with the accents. And he kind of laughs like. There really aren't any of those over here. It's just all in how you interpret it, Bridget. He says, it's all in who is channeling, who's speaking, how they, how they tap into our memories of our human life. So he says, don't pay attention. You know, don't worry about that. Pay no mind to that. OK. No, he says, no, George is phenomenal, incredible singer. What a voice. He says, what a voice. Just incredible. So you were pleased with that? Incredible. He says, incredible. And then he says, I want to see Lady Gaga do it. Lady Gaga, just like random. Hello, you guys. I'm not like a big fan of any particular musician right now. I don't think I might be. I'm not sure who I'm really super into. I'm not a super big follower of music, but I do like music. But Lady Gaga, wow. You know, is it it must be her creative expression. He says, her performance, the theatrical performance. Yes. Now that would be a good one. I would love to see her with Queen. He says, I would like to see that. Let's get a female in there. He said, it would be fantastic. Wouldn't it be fantastic? He says, wouldn't it be fantastic? It would be fantastic. You know, I'm right. He's like, you know, it would be fantastic. And then in that same clip, I saw David Bowie, because he was part of it, too, because he sang under pressure with you. So he was also in that, the tribute, I think. I didn't watch the whole tribute. I just watched the practice of it or something. There was a practice. It was just incredible. And David Bowie was just kind of feeling it. Do you have anything to share about that, about David Bowie? He says, he's here, too. He's here, too. Well, you did under pressure with him. It's my understanding. I know that. I've learned that. Yes. Yeah. You know, we didn't really... It's like he's trying to describe to me that they had artistic views that were a little bit different about the nature of the song. And although it was his idea that he wanted... David Bowie wanted to sing with them, he definitely has his own very individualized view of how things should be arranged and music and creating and such. So he's just... Freddie is acknowledging the two of them as very unique individual artists and how the arrangement of things was really important is, is, and you can probably see it in his work, I would assume, with David Bowie, that it was really important to him, the structure of things, the flow of things. And Freddie says, I just wanted it to look good. It needed to look good. It needed to sound good and look good. But the individual parts, although really, you know, that's important. David was much more specific or much more particular. I thought what he did was fine. I thought what he did was great. But he was very particular about it. And I knew you have to respect that. You have to respect that. It's an artist. It's your work. You have to respect that. It reflects you. And I respect that. Thank you. Interesting. Interesting. So talk about the movie. I was supposed to talk to you about spirit guides, but I don't know if that's going to happen. Hopefully it will happen. Let's try to get that in there.   Oh, Freddie, I am sure there are so many people that would love you to be their spirit guides and you are so sweet. You can come and visit me. You can come and visit me. And I love your energy. Okay. So Freddie, as a spirit guide, how would we invite you to be our spirit guide? Can we do that? I've asked other afterlife guests that too. So there's different, you know, there might be different views. I don't know. Can we invite you to be our spirit guide? He says, yes. Of course you can. You can always ask. You should ask. Ask for what you want. Ask for what you want. Okay. So how does that work then? Aren't you like really busy then with everybody? Wouldn't you be like with everybody? I mean, how does that even, how can you do that? He says, it's like touring. He says it's like touring. You do a show and you do another show and you do another show and you do another show. And sometimes you're in studio and you just, you're making music. He said it's the same, it's not any different to me. It's all artistry. It's just the flow of energy. It's the flow of things. Okay. So you can be in multiple places at once and help multiple people at once. Absolutely. Yes. That's how it works. He says, yes. That's how it works. Okay. So a lot of people have felt like they've had connection with you and contact with you. And partly I think because of the movie, because it opened up something, did the movie open up some kind of a portal or some kind of a spiritual awakening? Did it start something? He said, yes. Yes. And that's, and it's good. It's served, it serves such a beautiful purpose. He's like incredible, like all these adjectives. I can't even keep up like he's all this stuff. Yes. It served a wonderful purpose. Just an incredible, incredible, infinite, infinite connection, infinite reality, infinite purpose in it. It will continue on. He's showing me like a figure eight, like a figure eight. And he's showing me the figure eight. It's the flow of things, the flow of things. And he says, yes, it opened up a portal. In your words, portal. It opened up a, it's like a box of light. You opened it up the box and it was like, whoa. And you just, the light just comes out. It flows out. You can't put it back in. It's flowing. It's flowing. It's flowing. And so in this way, yes, many have awakened, began to realize that there is connection. And there is divinity.  That box of light is, is as so beautifully put, is a image of your soul, your spirit. And isn't that beautiful? That is so, isn't that just incredible? I'm grateful for that. You're grateful for what, what part of that? What do you mean? The awakening or the movie? He says all of it, all of it. And yes, many people have asked many other interviewers. He says, you know, many other interviewers and many of your viewers have asked me privately. If I approve of the movie, if I'm okay with the movie, yes, absolutely. It's artistry. It's artistry. And it's sharing and telling a story. And it's one perspective. And there are many. But it has served just a beautiful purpose. And it has awakened us as a humankind. It has awakened us. And all of the spirit within you, the spirit light within you has been given the opportunity to get out of whatever stuck state it has been in. It's opened you up even just a little bit. Even if you don't know, you're not aware of it. You know, in your mind, it has. I'm grateful for that. I really need to see the movie. Oh, go ahead and put your mean comments below. I have not seen the movie. Guys, I have a busy life not seen the movie. I will, at some point, I will try to see it in the theater before it goes away. But I'm kind of afraid to get sucked in. And then all I want to do is channel Freddie Mercury. Because you guys, his energy is so, your energy is just incredible. It's so awesome to be around you. It's easy to talk to you. It's easy to connect with you. And so if we, the viewers who are watching, want to connect with you, what is the best way to do that? He says, just talk to me. Just talk to me. And you can feel me. Just talk to me and feel me. You know, he says it's not going to be the same. It's not going to be like having a conversation. Or, you know, having coffee or having drinks. It's not going to be the same as that. But there is contact. We do, we do communicate. It's just in a different way than what your mind can understand. So we just talk to you and feel you. Yes. So by listening to the music, can that maybe help? He says that can let down your guard. Maybe keep your mind busy so your spirit can sneak out. Like it's like sneak out of the house kind of thing. And go to the party. Talk to Freddie Mercury kind of thing.  He said, oh Bridget, you know this. The easiest way is to feel me. Yes, feel me. Feel me. You definitely are an advocate as a spirit guide, as a mentor, as a spiritual teacher. If you want to connect with him in that way, he doesn't like the word teacher. He's like, I'm not teaching. Oh, no, no, no, no, no. I don't want to be responsible for others necessarily in that way. So I don't want to, it's not my job. But he is an advocate to raise awareness for sensitivity and being a sensitive person.  The most wonderful people in the world are people that don't fit in. They're unique. They love themselves and they're not famous. Everybody isn't famous. He says, I know it can be lonely. You don't feel like you don't fit in. I know that. I understand that. And that's part of what he says. That's part of what I do here, like in the afterlife. He says, that's part of what I do here. I connect you with that. I help people feel like they're not so alone while they're trying to figure out who they are, while they're trying to be themselves in the world. And the world doesn't seem so friendly sometimes. But if you remember that we are connected spirit to spirit and that you do have help, like you said, Bridget, spirit guides, you do have help. There's help available to you. Just ask. And let yourself feel it. He keeps touching right above the heart, like in between the throat chakra and the heart chakra. He keeps touching right here. You can feel it, he says. So he's definitely, so you're definitely part of your role in the afterlife is to be an advocate for sensitive spirits, for people who are sensitive, for empaths. That is beautiful. And I recognized that. I saw that in a video that you and I did. I totally saw that. I totally called that. I'm like, oh yes, this is his job in the afterlife. And it's not formal. That's why he doesn't like teacher or mentor or whatever. He's like, I just help you out by feeling. I can feel you. We can connect and communicate through feeling. That's beautiful. That's really beautiful. And now you're really mellow. Do you guys feel the mellow energy? Just let's take a breath in and feel the energy of Freddie Mercury. Honoring our sensitivities and exhale out. What a beautiful connection. Thank you so much. I so appreciate you. I so appreciate you very, very much. Thank you. This is Bridget at Above Life Channel. You have been watching an afterlife conversation with Freddie Mercury. We wanted to chat about, I wanted to talk to him about spirit guides and so he gave a little information about that. But he also talked about bohemian rhapsody, the movie. He also talked about Adam Lambert with Queen and other, he also talked about George Michael with Queen during a tribute concert or tribute thing. And what else do we talk about? Sensitivity. His role in the afterlife is being an advocate for sensitive people, for sensitive energy and helping you to feel connected to yourself and while you're discovering who you are and having that comfort in knowing that, you know, who you are, even though you feel separate perhaps from others, that who you are matters and that you are totally and completely loved. Did I say that okay? Yes, you did. Yes, he said yes, you did. Well said. Thanks.  And then he's got this big like staff that's like got a spire on the top of it and it's just big gold staff and he's like looking all like important and yes, yes, well done. He says okay. Thank you. Thank you so much for watching. I hope that this channel with Freddie Mercury, I was getting closer again, channeling with Freddie Mercury has inspired your spirit and filled you with hope. Remember the purpose here at Above Life Channel is to encourage you to live your life. This is your life after all. So live it. Just live it. If you like this video, give it a thumbs up, make some comments if you choose to do so and to add value to the conversation and share it with someone that is a fan of Freddie Mercury that you know would love to watch it. Thank you so much for being here.


Yeah, well I started at Glamour Park, just at my local club, and then I went to play for Spartans in their MPL to under-12s, under-14s, and then I went to Sydney United, played one year there, and then I got an email to come to Wanderers as they first started. I was always wanting to get into a first team, but it kind of surprised me getting called from Wanderers and all that. I was very excited. I got an email from Ian Cook to come over, to play for the under-15s, and yeah, I was super excited, stoked, and I didn't believe it, so yeah, that helps you a lot. It's like a professional environment, so it's like, keeps you in line. Yeah, it's given me a lot of confidence to develop my game and get myself up to first team standard, and it's something to strive for even more now that we have the new facilities, and it makes it a lot more professional for the players and more coaches and that, so I want to develop my game as much as I can to try and push my way into the first team environment and want to work to get to first team, yeah.