My name is Badis and I'm from the FreeBSI project. We often meet together to share our suits and vision about what's going to be the next big thing in IT. Or have a long physical, philosophical discussion about technology in general. That's how we predicted that the cloud would be a thing before the world was even invented. I think it was around 5pm, a beautiful afternoon. Who are we kidding there? It was mostly like 2 in the morning. Yeah, but probably it was some random bar. I think it was a glass of red can of wine. Burgundy, Burgundy. We're in France. You can say you're drinking that thing. So, Burgundy was Burgundy. So, I started complaining that Burgundy didn't have a taste. So, if not, again, we're in France. We were having a Burgundy, or a Californian one in that case. Well, so, as I was saying, the wine didn't have any flavor in it. And that's when it hit me. Oh my God! This is after the FreeBSI, you guys suck! You guys don't have flavor! Okay, so what is flavor? Flavor is a very interesting concept. I'm not aware of any other package manager in Unixland that implements the same functionality. Basically, it allows providing packages combined with a different set of options. So that's obviously very convenient from the dependency point of view. Since according to the option that you set for the combination, the final battery will change. I might end up linking to different libraries, obviously. So, since you want to be in control, but providing packages combined with a good set of options is quite complex. Why sometimes it's not possible to have a good default, because it's a hard one, right? And that's why the flavor kicks in. For example, against Al-Sendal, or with or without Al-Dab support, etc. It's completely different from what we call sub-packages, which are just split packages. These are typically used when you have a software that comes with a huge amount of data, for example, like audio or graphics or games packages. And these rarely change, while the main buyer does change each time it is a day. So instead of having a huge packet that comes with a complete set, you just update one small sub-package. It can also be used for things that use modules or add components that have a lot of different dependencies. PHP is a good example of that. On OpenBSD, for example, we combined it with pretty much all the possible options. So the build requirements are big, but the port only needs to be built once, and since the package itself is then built into several sub-packages, you only get to install what you're reading, like PHP iMap or PHP MySQL, etc. With that last one, you really took the wrong example. On FreeBSD, we have a fine-grained split package for PHP, so if you want PHP with iMap, you just install PHP5.iMap. My point is that actually sub-packages allows you not to have to deal with fine-grained packages. If I understand correctly how you port three ports, you still need to be able to use PHP modules one by one, which would be everything you want. Yeah, you're correct there. There are no really sub-packages, and it would be nicer if you had them. If you're speaking about flavors, a good example would be probably OpenELDAP client built without sub-support. Right, so if I need sub-support in OpenELDAP on FreeBSD, I assume that I need to build it myself, right? Okay, that's fine, but what will happen when I suddenly run package update and package upgrade? Yeah, probably bad things, like removing half of your packages. Nice. So, yes. It's true that we do not have the flavors nor sub-packages, but there are a lot of ongoing works. Actually, flavors should be committed in the next hour's days. We talked about it yesterday. So, the thing is, that work is pretty hard. It breaks the design of the way some tools that are heavily used by some user works, for example, Portmaster and Portupgrade. And those tools are right now barely maintained. So, as soon as we make such modification, we have no one to update those. So, on FreeBSD engineer, I will try to have a great path for users to try to avoid breaking things. Keep in mind that we do not release a package set, but the Post3 is a rolling release, not tied to a given release, so such change needs to be smooth when it arrives. Which reminds me, you guys do not support upgrading packages on a given release. Do you? Actually, we do support upgrading packages on a given release, but we do not provide the actual binary packages. Yeah. Yeah, okay, it's true that you need some kind of build books or something where you can distribute packages a day from. But there is work in progress in this area, and we should be able, hopefully, to be able to provide a data binary packages in the next year or so, famous last year. So, we just need to agree on the work of the team responsible for it and get in-rewarding, fresh culture, et cetera. So, it's not a technical problem, it's not a very moral work, but talking about package data, it's important to note that on OpenBSD, a lot of operations are done as completely different than previous users. So, you have different users for fetching, extracting, installing, changing the signatures, et cetera. We, for example, don't really want to go up on the ALF as root or anything. Well, I think you guys still do not draw packages when using the fetch with a package. Can you comment on that? Actually, that's not true. Package uses Capsicum to soundbox everywhere it is possible to make a soundbox since Capsicum exists basically. And package also uses Unprivileged User to fetch package or in every areas where we don't need root privileges. So, while soundboxing support is there for a long time, Unprivileged User mechanism has been added quite recently, but I actually got it in before you did from a few days. Yeah, yeah, yeah. Limfetch commit was pretty good. Anyway, back to our topic. We've also tried very hard to provide proper, great path for our users, obviously. But the difference is that people have to deal with legacy or maintain package wrapper that you guys have like the portmaster or the grade board, super-room, whatever. Our package crews are designed to provide everything one needs for package management to meet external efforts. So, don't forget, we have a very long tradition of providing proper binary packages for pushing people to actually combine them. Well, that's also true for FreeBSD now. It's been a while now that we are building binary packages. Most of the tools you are speaking about are mostly to use the POS3 directly on the live system rather than using the binary package, which I think is a user which is not supported by OpenBSD. No, no. Now FreeBSD has first-class cities and non-binary packages. It's perfectly supported by OpenBSD. We just don't encourage people to do it because for 99% of the time, it's just not needed. Yeah, one of the things about the FreeBSD POS3 you need to keep in mind is that it works on an ultra-ported version of FreeBSD, which, yes, it reminds me that you only support one version of OpenBSD and only for six months. Well, you are correct that for packages we only support the current release, which at this time is 6.1. Operating system, base system itself is supported for two releases. And aside from current snapshots, our POS3 is also tagged to a specific release. That's a design decision. We don't want to enforce to our user to create a new major version of a particular software. And we don't want to maintain four different versions of the same software to prevent that, which is why our POS3 does not follow a rolling release model, et cetera, for current POS3. But considering the fact that we have regular releases every six months and our packages don't have the time to get too old anyway, regarding the support policy itself, it's pretty basic. We support base system for current release and the previous one, packages only the current one. As I said, there's only an expression to improve that part. So that's true, that this means that you need to create at least once a year if you want to run a supported OpenBSD. I don't think that's a bad thing. I'd rather create open in small steps than the one certified years having to deal and handle multiple and invasive changes. I don't understand the meaning for LTS like releases. I just don't like it when I'm the one responsible or great. So, that's it. What can be good to have someone turn support?  I mean, extended support, normal support. How come FreeBSD 10.0 was still supported while 10.2 wasn't? I mean, this is so very confusing and you know support can be good if you don't understand how it works. Come on, that's easy. I will read it for you so that you understand. So, we have the normal releases. Those are releases which are published from a stable branch. We're supported by security officer for a minimum of 12 months after the release and for sufficient amount of time if needed to ensure that a new release for at least is out for at least 3 months before the older normal release expires. And then, you get the extended one. So, selected release, normally every second release plus the last one from each stable branch were supported by security officer for a minimum of 24 months after the release and for sufficient additional time if needed to ensure that there is a newer extended release for the last 3 months before the older extended release expires. It's easy, no? Yeah, no, okay. I agree. It's a mess. Well, actually, I should say it was a mess. Furthermore, it was causing a lot of issues when maintaining the port 3 as we had to wait for at least 2 years with this model to be able to use some modern tools in the port 3. So, it was kind of a pain. Well, we changed that with FreeBSD11.0. So, now the model is way easier to understand. So, each major version of our stable branch is explicitly supported for 5 years. And then, we can issue a new dot release whenever we want without extending that date. When we issue one, the previous one is maintained for only 3 months. So, you have 3 months to upgrade. So, going from 11.1 to 11.2 and then 11.3. So, that way, it will benefit stability for 5 years and at the same time, they have the new features. How do you finish it? Yeah. Well, it looks like FreeBSD support model keeps newer features out of the hands of users because it can be years before they actually see the new features in the release, right? So, it reduces real-world testing and basically benefits no one. In my opinion, OpenBSD model is super easy to understand and keeps the code stable but still pretty fresh. Whatever is in current at the starting period of time will end up in the release which would take at the very worst 6 months. You seem to have misunderstood one of the benefits of the new release model. New features, as soon as they are not breaking binary compatibility or things like that, are merged to the stable branch. So, as soon as we need a new feature we'll just issue a new release and a new problem is solved. So, you get new release supporting those new features anyway. Well, you did say that you had to wait for at least 2 years before being able to use the modern tool available with the previous model. Oh, previous model, okay. Well, anyway, we do things differently. We're not afraid of breaking binary compatibility in current and for our upcoming release, obviously. So, we don't do that stuff that merge of backwards usually. But, as you put it, your process is kind of less or less. And may have less to do. So, given we do support binary upgrade, it's very easy on FreeBSD to upgrade from a minor version to another minor version. By the way, binary upgrade also works very nicely across major releases in FreeBSD. But hey, I must be losing you somewhere here because you do not support binary upgrades, neither for security fixes or across releases. Seriously, it should be very tedious to maintain some OpenBSD boxes in production. Yeah, I see where you're going here. The way you put it is not entirely true. Binary upgrades between releases are and are always being perfectly supported. What is not supported are in-place upgrades of the basis from one release to the other. But is that really an issue? I mean, supporting in-place major upgrade would not prevent us from having to like reboot anyway. So, for me, I think your great process of OpenBSD is just one of the easiest and fastest ever encountered. Just reboot on the new release, boot on the PSD around this kernel and it will do the rest for you in like five minutes. And also, thanks to our Auto-Install and Auto-Upgrade functionality, you can give it the path to enhance or find the DHCP. And you won't even need any interaction. You can also upgrade your packages to much in release and add these to the fact that sysmerge the kernel configuration files merger is automatically run on boot. Well, we pretty much left with nothing to do now. Yeah, well, sounds okay, but what happens if you have to upgrade for security patches? Okay. Until a few months ago, updates within a particular release were only provided in the form of CBS patches. This has changed since the 6.1 release and the new syspatch utility which is a base system update tool that will basically fetch, verify and apply binary updates on base systems. It tries to design what our installer does so it's very simple, secure, fast Well, on the FreeBSD side we do support, as I said earlier, in-place binary upgrades via the FreeBSD update tool. So the basic design behind FreeBSD update is that we create binary updates and we binary patch the system with the changes. So it is very convenient to receive security fixes and very fast for that. FreeBSD update also allows you to upgrade from one major version to one major release to another major release in place and the procedure is basically what happened under the hood. First it installed a new kernel then it reboots on the new kernel then it installs the user and manage configuration files and remove the files that are not needed anymore in the new release and that works. It works fairly nicely for a while now but fetching all the binary patches upgrading from a major release to another major release can be very, very long. Another issue is that producing the packages is not really trivial for FreeBSD update as it needs reproducible builds to be effective. That's why we're now looking forward to be able to provide a new mechanism based on package itself. To be honest, there is also a job act about in-place upgrades and we need to maintain strong backed compatibility on some kernel interface versus the rated user-land tools that goes with. A particular case is DLFS it's an interesting thing to look at so let's consider the version in the kernel goes with the version in the user-land which is nice so if they modify the kernel interface, you modify the user-land tool that goes with and everything is fine but on FreeBSD, because you reboot on the new kernel first, then you might end up with a user-land tool that are not compatible anymore with the kernel you're putting in so when we are receiving the packages to update DLFS and there is an incompatibility intruders then we need to make the compatibility scheme ourselves. So... Okay, that sounds quite complex. I mean, in-place upgrades can be interesting when the upgrade takes a while, for example. In theory, it would prevent like long down time but the reality in production should be resilient and services should be redundant so it's not generally such a problem. Also, the release of the upgrade process on OpenBSD is literally the fastest one I've ever used. If in-place upgrade actually meant reloading I mean, updating and reloading both the user-land and the kernel without having to reboot that I'm sure it would have evolved. So that's it, a very deep great pass an interesting policy that we have on FreeBSD is polar policy principle of least astonishment. It's a very strong policy on the FreeBSD saying that we should try very, very hard to make upgrades as seamless as possible and avoid breaking end-user boxes as much as possible. Well, in general, we're not afraid of breaking backward compatibility when we think it makes sense, of course and help to push our ideas forward. That said, I can understand the need for a polar for some time, but not when it goes against bad basic security apparatus. For example, just to satisfy third-party clients, you guys get TSA encryption, AES, CBC Cypher and SSH-1 support in your OpenSSH for a long time after upstream which is us, dropped it. That's the kind of compromise that we're not going to make. Well, that's not entirely true. Pola does not prevent from making those change, but if they are done, they should be driven in a manner so that the user are one long before. This is particularly true on a given branch. We usually make big changes between a new major release. On newer branch, they're just then removed. Well, then, let me read this. According to previous DSM revision 303716 dated August 3rd, 2016 removed TSA from default Cypher list and disabled SSH-1. Abstracted this a long time ago but we get a TSA and SSH-1 in previous year for reasons which goes down to Pola. So that was a good time to catch up. Anyway, speaking about delivering binary upgrades you guys must have a very hard time building the thing considering you're still using the giant look almost everywhere, meaning you cannot use efficiently multiple cores. Well, for rather desktop-like usage, our big log SMP implementation model, the internal look, is good enough. The reasons that most of the time in workstation you only have a handful of not-of-force like between 208 and only one socket. So our actual scheduler isn't bad. It's just that it's a bit old to say the least and was written for machines. That's not considered things like, for example, the cache distance between cores, and that's the main reason why machines with several sockets often have a lower performance than the ones with only one socket. There's that less ping only lower. So we can also use 24 cores but in the context of huge building for example where much better performance incatenate the works of 6, 5, 4 cores machine for the time being. That's true. How the change can be done in the OpenBSD model? I mean, on FreeBSD it took a lot of time to get most of the architectural work done so that we can have proper SMP and it also led us to some of our very good releases like FreeBSD 5. I'm not saying that the road we took is the one true way but I can't see how this can be achieved in an incremental way that is yours. A few things can be incremental because they're not directly related to the scheduler itself. Several scheduling related issues that we haven't looked in BSD can in fact from a spin-locking in the bar thread or posix B-thread implementations but that just drastically improved since we implemented a few tests and made our B-thread library use it. And in contrary to that, OpenBSD scales very nicely on big user network but now its role performance on bar with FreeBSD probably not but our priorities are different and we are okay using a bit in this area if we can get more security and simplicity. Actually I'm going even further than that I would say that with rather crash and added you could detect an unset behavior. Well to be honest, SMP is something that is always evolving right now our next challenge on FreeBSD side are to have better number support to improve the overall locking systems by using lockless mechanism where possible by using for example concurrency kits. What is the current status on that on OpenBSD? Well, our entire SCSI stack and current providing already fully SMP for example and recently there's been some huge progress on making our network stack more SMP friendly. The goal of the network being able to use multiple threads to forward traffic for example. I don't think you would argue that modern scheduling is hard. Most operating system has to do it and we do it again multiple times. We are learning from others OS experience and I usually with OpenBSD we are trained to implement something that is simple and match the project goals. So as you say, it wasn't an easy road for you. So that is why sometimes we see the big behind certain aspects. We take the time to do it according to our standards and all we just don't do it. So what are you here? Maybe you can explain me something in OpenBSD I do not understand. You seem to keep writing again and again your own tools when there are already BSD license counterparts. I mean HDPD, SMTPD, VMM, etc. Aren't you suffering some kind of NIH syndrome? Well, that is actually a very good question. I am glad you asked because there is actually in our opinion a very objective reason to do that. The first one would be trust. We have a coding style, obviously practice and process that makes us confident in what we develop. Another reason is also control. We know someone will not decide to change the software license one day to the next or start adding nodes for each and every crazy current case. Does it out there that only two people would use for example? Looking at how many CVs impacted NTPD or OpenSSL in the last couple years it should be a good hint as to why OpenNTPD was created and why LibreSSL was formed from OpenSSL. So if I am not mistaken for example a lot of your security advisory has been related to the NTPD. I think you need a system, the so called reference implementation. So I don't think it's really having an age syndrome wanting to write a second implementation. For the example you took, okay I can understand it but I mean when you have already some BSD quality alternatives you're still doing it. What about B-Hive? It was working, it could easily fit the security requirements about security and sandboxing. So why yet another implementation? There's been an initial reporting trial a few years ago by Mike Locking but compiling a single file ended up being a huge amount of work so we'll let it go and run. When you're conflicted with such trouble you really need to ask yourself whether it's not worth just creating something from scratch instead of reporting something that is not portable. The situation I agree may have changed since now OSS has been in confrontation with X-Hive but that was one of the reasons that VNM was created. I would also add that it helps us providing the basis then that we want I mean the basis then that for us just works without having to depend on the choice done by the external project. Right, but another example I could have is a capsicum you decided to make your own sandboxing mechanism instead of reporting that one. Oh but there is a very good reason for that actually but since you've brought up the subject of security let's talk about that and we'll compare sandbox implementation later on. So as some of you know, most demand runs with privilege separation on OpenBSD that is most of the code is run true to and as a non-privilege user OpenSSH led the way on this topic years ago they also use privilege replication for dropping privileges as soon as possible A good and simple example to look at is NTBD again. It's a very standard OpenBSD unit so it's written with principle of least privilege in mind and so not only does privilege and privilege drop but in addition to this it has a completely privilege separated TLS speaker for the constraint feature with no memory sharing or FD passing and with a very limited amount of allowable system calls thanks to Clash which I will describe later on. The constraint feature that I talked about of NTBD basically queries the time from a trust and web server over HTTPS reducing the risk of a man in the middle attack by comparing that time with the one that the remote NTB server gave us. So for NTB well, you're right but there is one price behind that you have a half baking permutation you have an implementation that cannot authenticate the peer you're receiving the time from and this could be a huge problem and you're not showing the standardized mechanism in that case you miss half of the feature NTBD servers to provide and yes, I agree on the fact that most people won't care about some of those that's it. I would love that to get something out of the NTBD in the base system but an open NTBD is probably too light. I'm actually describing it exactly open NTBDs it actually does not need to authenticate it tends to constraints and it does not need to implement the kitchen sink because no one cares and if one does then one can install the reference implementation and it's not always about math and algorithm and sometimes good enough really means really enough. Anyway, on a really good topic OpenBSD is also well known for its numerous exploiting the Asian techniques and it's important to note that all of these have been enabled by default for some of them for years and are very hard or even impossible to disable. So, let me give you a few examples like we have a web AS and R2 to grant a buffer on the prototypes. We have a WNSOAS a memory page that can be either writable or executable in both the kernel and the usernet and we have Propolis the step matching protection using a balance checking and wiring we have PI position independent executable also for static diaries to exactly a random address which stops stuff return to IPC type text since not too long ago we had a car the kernel address randomized link which will generate a unique kernel on each boot with internal structures preventing leaking internal current functions pointers and more objects and we also just got TROPSLAND to live in the availability of attacker to exploit return oriented programming like that by jumping around on the programs. So, obviously each of those can be encoded around the ground so I won't go into details but I want to insist on the fact that the way we approach security is that we always assume to be running in a hostile environment we also refuse to implement dangerous functions like like Word EXP and then Lipsy spawning the shell to perform word expansions this is completely crazy True We also provide some Propolis mechanism about ISOLOR we have an implementation which is in review right now opening VM people to be able to review it on our side we have the MAC framework which is a very interesting framework it's monitoring access control it allows to restrict many many things so with MAC you can restrict user access to system resources including not seeing sockets opened by other users or many other stuff you can also have a file like policy on file system to be way stricter than the regular system rights you can restrict network interface accesses you can limit the scope of the process one can see compartmentalizing them into partition and way more things another interesting feature that we have is OpenBSM it's a full feature audit system which you can use to monitor everything that happened on the system and you can distribute the log over central server it also supports the Linux version of the protocol for the centralization well see all this technology I mentioned are for me very interesting in theory I do agree but in real life I almost never see them in action because they are too complex to use and next to impossible to audit well let's go on the sandbox part Capsicum is a very nice sandboxing mechanism that we have on FreeBSD it leverages the concept of capabilities what is very nice about it is once you are inside the sandbox there is absolutely no way you can exit it even child process inner into capabilities so that's by design it is really designed for developers to secure their own application by strictly restricting the capability of an application to only what it really needs to be able to and strictly what it is really needs to be able to do we have started converting most of the base system to use it what are you there yet because yes the design of Capsicum allows no compromise so it's not always that easy to convert existing software to Capsicum yeah that's where I wanted to go actually Capsicum it's too complicated that's why it doesn't have much use by default Capsicum is actually a very good summary of what OpenBSD project is about developer practical and affordable security meaning simple and easy to implement and it's enabled by default almost everywhere in the system I mean 30% of the base system was pledged after only two months today it's more like 85 to 90% I don't have the exact number and even some most supports like Chromium are pledged so anyway talk about pledge itself for us it's designed to serve two goals basically encourage refactoring towards safer models and reduce public exposure to the current model so people often compare it to a second BPF on legs other pledges not a system called spiral but rather somewhat like a facility to explicitly allow a group of system code in the process with some sort of pre-claring profiles like I9's shown, DNS, TTY and obviously a pledge process is forced into a restrictive service operating mode where abilities can be reduced but never regained and if a restricted operation is attended then the process is killed with a catchable C-deboard in theory I agree that capability basis security may be more advanced and probably yes but what is a feature that is too complex to be widely implemented another security feature that we do have in 3BSD and we have it for a while is gel it allows to create prison container we have it on 3BSD since 3BSD 4 I guess if I remember correctly it's very simple and easy to use almost everything can be is disabled by default can be restricted inside the gel so you can restrict network, file system access CPU, memory, routing tables and nowadays there can even be nested on 3BSD data set dedicated or have your network about that regard I do agree that it's okay there's been initially 4 years ago called CIS gel but it was abandoned because of an inherent design issue in CIS trace on which the tool was placed and that would basically allow fading gel by exploiting a race condition so getting tired so I think it's time to go to somebody else let's do that thank you and see you after the break


What's up, everybody? I'm Ami Brava. We are here on Texas Motor Speedway, Bushido Series, Texas, to talk a little bit about the new competition that I'm going to be entering into, hopefully, very shortly, once everything is announced, we are in the Slideboys A90 Supra, VA-powered Supra, 750-60 horsepower. So, we're going to be talking about it and getting some practice here today. If you guys follow me on all social media, all of which are found in the description box below. So, like I said, we are in the A90 Supra, Slideboys A90 Supra. There is going to be a tandem competition that my buddy Nate and I are going to be getting into, which is going to be using some modified Slideboys cars. And I got the in to say that I should be practicing in the Supra for the feel and the power of the cars that are coming in this competition. So, you guys know I've been looking to get into a new competition. So, a new competition that's going to be coming out. Super excited for all the information.  But for today, we're going to be testing this A90 Supra, getting back to trying to hit all the clips on a bunch of different tracks here for today. So, I'm going to start off first run here at Texas in the outer zone section. Both gear, e-brake in a little bit longer than I wanted to e-brake a little bit off that outer zone. Kind of got back into it towards the end. Didn't really get into that zone. We did get deep into that zone and kind of right on there, little handbrake flick into that zone, hold the angle, bring it back in nice and smooth on the steering and finish out that run. So, overall, not a horrible run.  But like I said, first shake down of this car here on these tracks, trying to get back to point to point drifting, trying to get my lead run down. So, we're going to try a couple of different tracks here, some of the VDC tracks as well. So, here we go for another run. Then we'll take a look at the outside view. Faint initiation, little handbrake flick. Much deeper in that zone, came off that zone way too early. See if we can actually get the car out to this zone, kind of clip that zone a little bit. Good deep in that zone, right on the hash marks there, little e-brake flick there. Deep in the zone, almost 90, too much angle. Going to go to zero that run out, unfortunately, too much angle on that. So, we're going to give it one more try here for today. It's all about trying to get back into competition mindset of running that perfect lead run for qualifying and for competition itself. Way longer of an e-brake drag than I wanted, but we are out in that zone. A little bit of tap of the brakes to control the angle. You can get out to that zone a little bit better right in there on that front clip. Quick e-brake flick for that really hard. Not the cleanest of runs in that last turn, but a run nonetheless. So, let's take a look at those from the outside view. Going to go back to the start. Take a look at a couple of these runs here and see what we could maybe do better and stuff like that. I feel like the e-brake drags are a little bit too long in there. I don't believe this was exactly the first run I had. I believe this may have been one of the practice runs. A little bit of wavering there, somewhat of a smooth transition there. Kind of on the second hash there, throwing a hard angle there. Deep in that zone, right on there and about the second hash there. So, a little work to get, that was my practice run. So, a little work to get where I want to get to. So, here we go with the first actual one you guys saw. Hard initiation, not long in the e-brake, not as deep as I wanted to be in that zone. And coming through here, I was a bit shallow, a little bit wavering on my front wheels, which I need to correct. That was a pretty good deep zone there, right on third hash there. Quick hard flick, right deep into that zone and running that inside edge to the third hash, almost bumping that clip. It's a latter part of that track, much better than the first part of that track for sure. So, we're going to take a look at that second run. There we go. I need to work on my initiation, I need to not hold the handbrake as much, tire dropping on initiation. This was a little bit better, but we came off that zone way too much. We were able to kind of get out to that zone, but not as far as we needed to. Hard transition there, that was pretty good on that third hash. A quick flick hard in there. Too much angle there, we tried to go a little bit too much saucy on that one. So, let's take a look at that third and final run and then we're going to change up tracks. Like I said, we're going to do a bunch of different tracks today, trying to get back into that mindset. That was a very wonky initiation, almost a double initiation, too much handbrake drag. I need to fix that for sure. We did get out to that zone a little bit more. That transition, we did tire drop, we would have taken out those two clips and we are on the third hash there. Hard into there, deep into that zone. A little bit of wavering going to the last clip, probably should have ran that a little bit wider. But, I mean, I would take it. I'd take it for a qualifying run, it probably gets some points on the board. Hopefully it wouldn't have zeroed me out with a little tire drop through those other two. So, let's switch up tracks and see where we're at now. Alright, so we're here at Road Atlanta, the BBC Road Atlanta track. We're going to take this car for a rip. Kind of warming up tires a little bit on the way to the line. We want to try and get a good initiation and go through this whole course. Kind of the last standing cone. Kind of angle stalled it out on that section. Kind of coming up the hill a little bit wonky. So, definitely need a lot more practice in this car if I want to be able to run super clean. We're going to run one or two more here. But, like I said, the cars will be coming out soon that we're actually competing with. So then I will be choosing the car I want to run and going from there once the cars are fully announced.  We're going to try one more try here. Road Atlanta definitely a tricky track for me. I guess it followed me in my 4-7 competition and stuff. You know, Road Atlanta was a bit of a difficult track for me to get down with the downhill deceleration and stuff of that nature. A little bit better of an initiation. A little bit off that clip and a little bit sloppy through there. But, believe it would have been a score will run until right there. It would have been a score will run until we went off course. So, let's switch up to another track here for today. Just banging these tracks out, trying to get back into the competition mindset. We're here for the third track for today that is VDC's OSW. A track I've come to know and love. I do love OSW for sure, but we're going to see how it runs today here in this Supra. Like I said, trying to get back into the competition mindset and work on those lead runs. Alright, so let's see what we can do here in this Supra OSW. Other than that kind of fault in the beginning, not too bad on the bank. Come off the bank. So, other than the fault on the bank, not a terrible first run. Mind you, I don't have too much time in this Supra. So, definitely going to be doing a lot of work in the cars when they come out to find out which car suits me best. And what car I'm going to want to drive. We'll be doing all the testing of all the cars here on the channel. Of course, going into this new competition. Good on the beginning of that. Oh, we're going to have to shut that down. Unfortunately, that was not a good attempt on that run. Trying to get high on that bank, but I think the gearing is a little bit off. We may have to adjust our gear ratios and stuff if we were to actually run this car. The key brake flick, the line clutch kick coming off the bank. Didn't get all the way out to the crease, but we managed to complete the run. So, we're going to take a look at the outside view of these runs here at OSW. That's Supercharger just whining in the front of this car. Yep, yep, that was, don't do that. That would be a false start. So, the flick was good. We were pretty high on the bank in the beginning and we kind of fell off. Coming off the bank in the first run, we were pretty close on that clip. It was a bit of a smooth transition, no break. Just a quick handbrake grab, change direction, probably didn't have to handbrake drag that. And then kind of right in that crease where we needed to be to finish that run off. We would have punted that final clip, but I feel like that would have been okay.  But fell off towards the end of the bank. And when we came out off the bank, the bank got us with the transition. So unfortunately, that was a null and void run. Come off transition kind of could not handle that. The third and final run was a little better, very mid to low run on the bank. Coming off, we did manage the bump a little bit better. The transition was pretty great on there and the clip there was decent, but not terrible. The inner bank was a little bit off the crease, but we managed to bring it out at the end of the second run. So we are going to go run one more track here for today. Probably one of my favorite tracks other than Rockingham, which you guys know I run Rockham a lot. And that is Irwindale, very high speed, high bank, high reward track. So something that I've been practicing is trying to get these wall rides here at Irwindale. So we're going to take Super out for a lap or two here to end this episode off. Make sure you guys follow me on all social media and follow me in the endeavor of a brand new competition to the channel. More tandem battles and stuff coming. So competition prep and everything like that. Let's send it. I say send it. We send it really hard in the bank. So unfortunately, we don't want to send it that hard. We're going to try and redo that start and get a clean run on that bank. Probably do my flick initiation rather than a handbrake initiation. Brake grab, really mid bringing it up towards the end. Too much sauce through that transition. Unfortunately, that run is pretty much null and void. So unfortunately, I love Irwindale. I've been running it a lot with the other Sly Boy cars, but apparently I got a little work to do in the Supra and the new cars coming out. So we're going to give this one more go. It's going to be a make it or break it run. The cleanest or deepest run, but a full pull nonetheless. So we'll take a look at that run and from the outside to end this episode off. Definitely a lot of work I need to do in order to get back into competition running style. Supra definitely handles fun and definitely a great car. Can't wait to see all the cars that are coming out. Mid to Highline about the first hash mark coming off the bank. Quick transition flick right on that clip. Pretty deep on that transition against that wall. The interbank was great in the middle. We kind of fell off the interbank a little bit, but we did pull it down to get to that clip. We would have straightened up almost right at the end of that run. So make sure you guys follow me on Instagram and Twitter. I'll have you found in the description box below. And as always, thank you guys for coming back and watching. I'm EvilRabbit. I'll see you guys on the track.


These days, financial and investment analysts are giving much consideration to an effective corporate governance system, while analyzing the financial health and riskiness of any corporate firm under their consideration. Generally, the relative quality, strength, and reliability of a company's corporate governance system are the factors that affect an investor's assessment of investment and valuation of the company under their consideration. If a company fails to incorporate an effective corporate governance system, then this means that investment of the shareholders or other investors in this company will be ruined. Wicker corporate governance system riskier would be the value of investment in such type of company. In this regard, there are few types of risks that may stem from the weaker corporate governance system. In this regard, the first risk is the accounting risk. This means that the investor's decision may be riskier due to the omission, incomplete, and misstatement of a significant information that is not available in the financial statements of a company, or the other related disclosures. The second is the asset's risk. This means that there are chances of risk that the assets owned by the owners in a firm may be used by the managers or directors in the form of heavy perks and other lavish compensation packages. Liability risks. This means that sometimes the managers accept liabilities at the cost of the shareholders' equity that may decline the value of investment in the company. And generally, these liabilities or obligations come in the form of off-balance sheet items. The last is the strategic policy risk. This means sometimes a strategic policy taken by the managers or the directors may not be in the favor of the shareholders. And if the policy introduced, implemented, the result may be the diminution in the value of the investment made by the shareholders in that particular company. Dear students, studies in advanced countries of the world like US and European countries have shown that corporations with stronger CG systems enjoy higher profitability, better investment performance, and stronger market power. But the phenomena of this strong corporate governance is also equally workable for the developing and emerging economies of the world. A good corporate governance system ensures better results for the companies and their investors. And of course, for the other stakeholders as well. Investment analysts should integrate corporate governance characteristics into their financial and investment analysis. And they also develop appropriate monitoring mechanics to monitor the corporate governance functioning of the firm under their consideration.


Hey, Jared, I know you were playing this aggressive in the latter half of last season, particularly in the bubble, but can you just take us into your mindset from an aggression standpoint and how you've been so effective, I think, for double-digit rebound games in the first five for the team?  I feel like sometimes I think too much about, oh, what am I doing wrong? What am I doing right? But these last couple in the bubble and these last couple games, I'm just going out there and just having fun. I think that's the main thing.  What was this process like in this game with Atlanta that's a team that's so good offensively and trying to get the communication right to try to limit them defensively? Right, you could tell we struggled. There are some times where we got the mix-ups or we got the match-ups wrong. There are times where we didn't call the right switch. But I think just staying in the game, staying focused, not letting it get to us, it's a long game. You know, there's a lot of offense going on, almost 150 points between each team.  We'll go to Greg Logan with Newsday. Jared, can you give me some idea of how much you guys were looking to KD and Kai coming down the stretch in the fourth quarter? They had 30 of your 43 points. Wow, okay. Yeah, you can say, oh, I mean, their names speak for themselves. When they get down the crunch time and we know where the ball needs to go, the ball needs to be in their hands and they proved why that needs to happen. So we kept trying to go to them. We kept knowing that they're going to make the right play. They're going to pass it to the right spot and we put our trust in them. Alex Shiffer with the Athletic. Jared, you and Kevin had good games on the boards, but they aren't rebounded, you guys, but it looks like 14. Just what makes them so tough to contend with there? Is it just their length or something else? Their length and their aggressive move on the offensive board. Usually you have like one or two guys crashing on the offensive board, but they had felt like six people crashing. You know, it was hard for us to box out, hard for us to grab the rebound. And credit to them, they were aggressive and, you know, that when they have athletic people going like that to the boards, it's hard to box them out. Malika Andrews with ESPN. Hi, Jared. I'm wondering, first, did DeAndre break your back when he jumped down in post game? And secondly, could you just speak to the evolution of your guys' relationship? All right. And you see me babbling down there for the board as I can handle DeAndre. But, you know, DeAndre...  Yeah, he is. He's been great. He's been cheering me on every step of the way since he's got here, teaching me post moves, teaching me how to guard post, teaching me just little things on the offensive end and defensive end. And so just him, just being able to have him, he has my back. He's been teaching me stuff, been a great teammate, and just, like I said, been a great teammate. That's all I can say.


So, we come here to the last part in JavaScript and we can do a fair number of things now. And this is, we can react to things that happen in the HTML. So we can react to user events, the user clicking on a button or editing text somewhere or hovering over a link, timeouts happening, a certain delay and then we get a call back. We can look at how the site is being loaded again using JavaScript. But sometimes we need to get new information after we have loaded the page. For example, if we need user input, then we don't know what the user will enter, so we can't really load the right content before. For example, consider Google. If you go to Google and you start entering your search string, I would like to have, then Google suggests what you would like to have, depending on what other users have Google. And of course, Google does not know what you're going to type. They can do a lot with all their data they have, but they certainly cannot yet look into your brain. So they don't know what you will write, so they have to wait until you have entered things. And this is, of course, after the page has loaded. So this means Google has to load content after the HTML, JavaScript and everything else has already been served to you from the server. And the technology Google is likely using is called AJAX. And technology is actually a little bit the wrong word here, but it's more a principle that a technique that JavaScript uses. And it stands for asynchronous JavaScript and XML. Note that the XML is outdated, so this came up at a time when XML was the main exchange format for web requests, for example. Basically you do things asynchronously in JavaScript and you return something, a text, JSON, a picture, whatever. And what this technique does is it allows you to do HTTP requests and responses after the page has been served. And it allows you to update the page with new data without reloading the entire page. So you don't send new requests saying give me the HTML file with certain parameters, but you just request additional data. So you use this to update the page. You load only what is needed in the beginning, so you don't need to load everything that is possible. And you load different data depending on the user input. So for example, Google would load different suggestions depending on what you started to type. Another example for load only what is needed is if you look at the Facebook or Instagram apps, you will notice that if you scroll down at some point, it starts loading a short while. So you see this turning circle and then new pictures or new posts will show up. And this is simply that Facebook or Instagram only load a couple of items. And then depending on how far you scroll, they load more. So they don't have to load 100 pictures, for example, but maybe it's enough to start loading five and then load the rest later, only if the user actually scrolls far enough. So this is what Ajax does. And JavaScript by default has an object that is called XML HTTP request, which can be used to do these things. And as a summary, again, what happens is something in the browser happens. For example, the user enters a search string in Google. Google then creates an XML HTTP request object. It sends this request to the server the same way as it worked before. The server processes it, creates a response. And the response is then processed within JavaScript. And then JavaScript can, of course, be used to, for example, change the DOM and display something to the user. And notice we process the return data using JavaScript. So we do not reload the HTML page. That's the key thing here. The way this looks like in an example is as follows. We create our XML HTTP request object with a certain name. We tell it to open a connection. In this case, we choose to get method. And in this case, I simply request a text file. So a simple resource on my own computer. And then I send the request. And here, this is actually a callback function we assign. We say that whenever the ready state changes, so whenever basically something is happening here, then we execute this code. We call the callback function. And ready state four in the terminology of this XML HTTP request object means that we have received a response. The response has arrived. And in case the status is 200, so that's the HTTP response status, then we just log the text. So in this case, if it's successful, we print out something, whatever we have gotten back. If we either don't get a response or the status is something else, then nothing will ever happen. So this is our callback function. As I said, this will make sure whenever the request comes back, the code is being executed. Here is the HTTP method we will use. We can also do post, delete, and all the others. We have a URL. Here I only used a local file, but this could be HTTP and something else. And finally, we can define whether we want to do this asynchronously or we do want to have it blocking. So we want to do the request and wait until something comes back. And asynchronous is, of course, the default state because if you do blocking, it means your application, your website freezes and nothing happens until there is a response. So this is the way it works. And let's test this. So I simply copy this code here. You have seen it. I get my local file Ajax test.text. We can look into it to see what I'm actually dealing with here. Here it is. And it just says some text from the worldwide web. Nothing fancy here. If we reload this, you will see that there is some text from WWW. There's also an XML parser error because I'm probably having the wrong return value in my HTTP request. So this is nothing to worry about here. But if we would do this in real life, of course, you would have to look into it. Now this was done when I loaded. So it's maybe not that special. But of course, we want to show you that this can be done asynchronously. So I'll define a function. And whenever my function is being called, I will do my request. And of course, this can be simulated using a button again. And whenever the user clicks on the button, I run my code to Ajax. Let's reload. Now you see there's nothing here. As soon as I press, I get some text from the World Wide Web. And indeed, the website has not reloaded. For now, you'll have to believe me. We could of course look into the network. But if you look into the browser window or at the ready icon here, you see that it never changes to loading. So my HTML file is actually never being reloaded. This happens on the fly. And as I said, this could be used for calling a website. For example, we could do give me the Wikipedia article for URL. So this should also work. I can already tell you that it won't. And the reason is something that is called course or cross origin requests. We'll cover this a bit later. But essentially, this is a security feature that means if you send a request across a domain, so I send a request that is not coming from Wikipedia.org to Wikipedia.org, by default, this is being blocked. And again, for now, it's not relevant. But this is a security feature to basically avoid having websites talking to each other. So for example, I have Canvas open here, and I want to avoid that my website starts doing stuff with Canvas at the same time. We'll cover this in the security lectures. But this is the basic reason why I simply use the text file here to demonstrate that this indeed works. Now this is a bit complicated. For example, this ready state is cryptic, and you have to put every status code here. And so far, we haven't added any headers. But of course, if we do, for example, a post request, we might have to add certain headers. We might have to add a body and so on. And this makes this XML HTTP request object a bit cumbersome. It's not that good to use. So there are, of course, many, many libraries that do HTTP requests for you. And as an example, I'm introducing Axios here. So that's one rather popular JavaScript library that does HTTP requests. And you are free to use it in the course. So of course, always free to use XML HTTP request. But as I said, it's a little bit cumbersome to do this for more advanced requests. Axios uses some concepts that I'm not introducing here. In particular, promises and error functions. But I'll quickly show how they look like without explaining all the details. This is not really important. For a simple usage, you will understand what they do. Now let's do a simple request to something. I replace my code here with the Axios code. And the first thing is I actually have to include my script. So there is, it's a library. So I have to load this library from somewhere. And the way I do this is using the script tags and simply an external JavaScript file. And you notice here that this one is actually an absolute URL. So this JavaScript file is lying somewhere on the internet. And now I can use this.  So Axios is simply the library. .get defines the method. I could also do .post to do a post request and so on with a certain URL. So maybe I can do AjaxTest.txt again.  Let's have a look at it. OK. So you see that Axios.get, this should be clear so far. I do a get request to this URL. And then I have .then and .catch. And these are promises. They basically have two cases. Then is if it's successful, catch is if it's an error. So in this case, simply I do a get request. If it works, do whatever is in here. If it doesn't work, do whatever is in here. The error case is simple. We simply log error. Here I actually iterate through something. So I assume, for example, that my response is an array and I iterate through the array. In this case, I probably just print my response. So it becomes similarly easy. Here I print the error. Here I print the response. Then you have this stuff here. These are error functions. You can imagine them roughly being the same as writing function response and then curly braces. So it's basically put the parameter response into a function and then call the function. So it's in a way a short form for a function definition. It does have some impact on the scope, but this is not important here. Now if I run this, it hopefully works if I've done everything correct. And you'll see that I actually get my response object. In this case, I don't just get the text back, but I actually get an object with a number of things. For example, you see here's my data. This is the actual text from my text file. I get all the HTTP headers and I again get the request so I can look at what I sent to the server. So there are a number of additional things. I can look at the status code, the status text, and so on. But essentially here with this really small piece of code, I've done exactly the same that I previously did with my XML HTTP object if we go back. This does the same that I now did in essentially four lines of code. If we look a little bit at the code, I discussed that there is the HTTP method. Here it's a function call with that name. We have the URL. We have these promise objects that have basically a success and an error case. That's as much as I'll explain here. We also have error functions, which are basically a short form for a function definition. So instead of saying function error, we just say error equals greater than and then have our curly braces. So that's how you can think about error functions here. So this concludes the JavaScript module and since this is a proper programming language, there's a huge number of concepts I have not covered and I was not able to cover. And there are the ones that are fairly intuitive. So I did not cover loops, string operations, for example, getting a substring of a string, math operations, random date and things like that, lots of operators that exist like and or, and the reason is simply that this is very similar to what you should be used to if you know Python or if you know Java or all of that. It behaves fairly similar. It basically has a lot to do with looking up the right methods. For example, how do I get a substring of a string? I have not talked about type conversion. I've shown you implicit type conversion. So if I have a number variable and I assign a string, the type changes. But of course, you can also do this explicitly. You can say, please give me the string value of variable X. Similarly, I have not discussed float accuracy. Whenever you have floating point numbers, there is an issue with how accurate they are, rounding arrows and so on. And then there are a number of things that are quite advanced. For example, there's the concept of closures, which I have not covered. Arrow functions, promises you have seen, but I have not gone into detail what they mean. And I have not really discussed much about object creation and prototypes. So basically the way to do reusable entities in JavaScript. I have not discussed this. Several languages have a statement like this. For example, Java has it to refer to the own scope. It's a bit complicated in JavaScript. This is why I did not cover it here. This will also be in the second web course. Now I have discussed a course. The issue that I cannot access, cannot do an Ajax request to a different domain that this is typically blocked. There is a way of enabling this. I have not covered in much detail. And then there is a whole bunch of languages that built on top of JavaScript that, for example, introduce types properly. And these are so-called transpiled languages. So they compile into JavaScript. Again, this is something that I have not been able to cover. Overall, some of these concepts we will see later on. For example, I'll definitely cover course later on. I'm likely to cover something like TypeScript to show it to you. But there is also a whole bunch of stuff that you have to learn yourself if you need it. Additionally, the second web programming course here at RU covers some more advanced JavaScript so you'll get in touch with those concepts. Overall, if you're interested, check reference two. Otherwise, be prepared that you need to learn these things on the way. To summarize the overall module, whenever we parse an HTML document, we create the DOM, the document object model, which is basically an API for accessing, manipulating the HTML content. And this is a tree structure. Now, JavaScript originally is a client-side language. So it runs in the browser. It reacts to events that are typically triggered by the user, for example, mouse clicks. And it can read, modify the DOM. So you can change the way the website looks like and you can access information that has been entered by the user, for example, in form elements. Now, JavaScript is similar to a lot of programming languages, but it has a number of really unintuitive things, especially for beginners. And I've covered type conversion, comparison of variables, hoisting, scope, and the asynchronicity. But this is not always easy to understand. And finally, I've gone into AJAX, which is a way of making HTTP requests asynchronously after a page has been served so without reloading HTML. And this really makes websites applications truly interactive so that you don't constantly have to reload your HTML page. So thank you for your attention and this finalizes the JavaScript module.


Hi, good morning, and welcome to today's products and focus US market for coverage sharply last night posting a bullish and dull from pattern Unfortunately, I'm not managed to fall through this morning, but potential resistance at 17 546 remains in play Series of earnings came out last night. That was actually a bit better than expected Amazon missing Google a little bit strange as well. Well, not quite so good incidentally, but Obviously Apple really helping to push a lot of these markets a lot higher So some firms back down felt well Whereas a number of other firms have a kind of struggled this the season But nevertheless, you can see that we still might have some sort of descending triangle formation Approaching right here. You can see the tips of these candles right here My I might even be looking into a channel formation because you've got you've got these tips down here as well But we are moving a little bit lower all the technicals are quite neutral the lack of this morning is a little bit Disturbing from a technical perspective, but we are coming on quite close to a 21 period SMA as well So if we do begin to move that little bit lower, you might look at 17361 as an exponential support So moving on to the UK 100 not quite the bullish and gulfing pattern that we had in the UK on the US 30 a similar picture this morning most markets drifting slightly lower this morning other Technicals are actually you're getting almost a crossover and stores to cast it there That's almost a sale and you've got you already had a cell signal in the RSI And you're getting a lowering of the histogram and the MACD Which is indicative of the fact that there could be a crossover happening right here as well So 67 71 could be the level so then looking at Japan 2 to 5 Again on the back foot trying to push it a little bit higher 18 feel 6 next potential resistance potential support still at 17496 Moving averages are flattening off other technicals relatively neutral apart from the slow to cast it there That's just moving into that 80% overbought Area, but it's still got a little bit of room for maneuver The most global market seemed to be taking a lot of a breather after a decent session last night Quite surprising everyone's coming off so much today Not so much, but the fact that everybody's coming off when everything seemed to close quite close to top-end of its range last night Dollar yen, so the dollar is taking a little bit of a back backseat right now After having a decent day yesterday It's not default through dollar yen still has this consolidation pattern around about 1736 There's really not much to talk about dollar yet at this stage We'll come back on till their effects pairs in a second crude is still we're still moving lower yesterday We actually got down to quite close to the bottom end of 43 dollars There's not much fundamentals to support this long term potential support still remains at 35 But this gives you a bit of an idea of what to expect there anyway, so I'm looking at The kind of trend right here. Obviously, we're not seeing any huge massive turnaround Which is not that surprising Inventories were at an all-time record high Supply is not going to be getting the tapering getting turned off anytime soon But certainly we are in the middle of the two ranges right now between 35 and 54 We haven't seen a real acceleration to the downside for the last a couple of days Even though we have been trading at the quite low levels venison this year this finishes up today So then moving on to gold gold had a terrible day yesterday And to be honest, it's probably gonna still have a bit of a Torah time Didn't start off that negative by accelerated as to the end of the day as a market jet digested or got used to the idea that the US might be raising rates And summer to to late autumn and that stronger potential US dollar that you know gold is very sensitive to US interest rates and that that that move yesterday I'm not so sure that gold is going to magically recover in the back of that So you might get retracing back up the 1273 But I think the gold bulls are scattering to the wind right now So we haven't a bit of a bounce this morning. We'll have to see what happens But 1273 could be the potential resistance Stop gold for moving up any higher. So moving on to your dollar It's been a tough one to call last couple days. It's up one minute down the next. Obviously with the stronger Green back getting touted across the board It's it's surprising to see that the euro has been quite resilient But then it is at the bottom of the downtrend 107 spotty sex is still a long-term potential support one spot 1642 is potential resistance We'll see if this peers off later on today So then to look at GBP USD Bad day as to the as well down DS today drifting level lower today next potential support is 49 46 fall by one spot 40 13 which is still a long-term potential support for GBP USD Economic data wise we do have your own CPI and unemployment data followed by US GDP So your dollar will still be in focus the macro data there to kick it in one direction or the next and then if we fast forward on to Monday Monday there you do have German PMI Eurozone PMI UK PMI and US PMI so a fair amount of What kind of inflation related data to to cover there that's purchasing managers index gives them a bit of an idea story It's about them Kind of factory production everything else at that so that will be quickly watched especially for people trading FX It should be a decent a decent catalyst for us to move forward So as ever keep an eye on the char forum make insights probably go forward and join me again on Monday to find out what the next


Pete Ack, 2023, we have George Bach all the way from Australia. How are you today? Yeah, good. Thanks, Tracy. You know, George, you're involved in numerous projects right now. What are you here at Pete Ack? What is your number one priority? Yes, I'm here with Vala Resources. So at two major projects there are Uranium in the Athabasca Basin, of which we found a little bit of rare earth. So I'll tell you about that in a little while. And then Copper in Peru, which was not supposed to be a big project, but that's turned out to being a spectacular one. So that's my reason for being here. And of course, George, George is an expert in the critical minerals sector. And there's so many things in the debate right now. I mean, just what happened with Tesla last week. Right now, we've been addressing the shortage issue in critical minerals of actual talent. How is it in Australia? Oh, Australia's been pretty tough since COVID.  You saw exploration, for example, go through the roof. The minute the board's borders opened, everyone started to go back around the world to look for other exciting projects and so forth. People are hard to get. People are hard to retain in the industry. Everyone's running off to Lithium because it's the sexiest thing going around at the moment. So that's attracting a lot of people. Everyone's climbing over. I mean, if you look at the shortage of supply and then you need people to find it, people to build it, I think there's a bigger problem than just the resource, if you like. Well, we couldn't agree with you more. We were talking to Mark Levier earlier today and he was explaining how the SME just last week gave a quarter of a million dollars' worth of scholarships away. But we were talking about how what are we going to need to do to attract these these talented people to this sector to achieve these decarbonization goals that we all agree we need. So I've been on this for a while. We actually need people in the industry to go back to their schools, primary school, secondary schools and actually talk to the students and the kids and tell them what mining is all about. Bring it to life. Tell them about how getting into geology or mining, engineering or finance or driving a truck and tell them how they impact the world because at the moment they're not being taught that through the syllabus. And I can only talk about Australia. So we need to get off our back sides. We need to go and influence kids at grade six, grade seven, where they're just starting to develop a thought process of what they're going to do in life. Get them at high school and and get them, you know, just inspire them is what I'm saying is we've got to do. That's one example on the topic of course of critical minerals. We recently did the CMI did a list of all the different critical minerals for the United States, Canada, Australia, the UK and Europe. And we found 14 that everybody agreed were the most top priority critical minerals are going to put you on the spot. What do you think is your favorite top critical mineral? And I note I said your favorite top critical mineral favorite. I mean, for some reason, I've got this love affair with rare earths after stumbling over it, no five. So if you want one, rare earths has definitely got a soft spot for me. It's been something I've been heavily involved with. Lithium is still short. We still have got nowhere near lithium graphite. I scream from the rooftops and wonder when the day that graphite gets respect in the industry, uranium. And the one that's probably here's one for you, copper, right? Twenty two million tons demanded every year. We just are not replenishing enough of it. And there's this old fashioned recession copper downward spiral. Well, copper is now part of the new evolution, part of the new energy mix and so forth. We've got to get back into really focusing on copper, copper exploration when it's support from the big companies to come down to the explorers to help out. So, George, I can't believe it, but you're going to actually answer the question that we know you probably have the answer for. And what's really going on with Elon Musk saying he doesn't need the rare earths in his EV vehicles? Yeah, look, I mean, there's no problems in people having aspirations to eliminate things. But when you're looking at trying to get these critical minerals solved 10 years ago, there were Siemens who came out and they said they had a rare earth free permanent magnet for their wind turbines. It never eventuated. They were talking about eliminating dysprosium and turbium. And I was at the heart of that part of the rare earth component of dysprosium, turbium. And that hurt us because people said, well, it's not needed. Prices suppressed. People didn't want to explore for it. It's back hot topic, DOD, DOE. Everyone's talking about it. And then Elon, who captures the imagination of everyone, comes out and says, we're going to do a rare earth free car. You can imagine how that's gone down with investors and it's hurting us. And it'll be interesting to see if it gets executed and delivered into production. Well, George, thank you so much for dropping by today and giving us an update on why you're at PDAC 2023. Good to see you. Thanks, Tracy.


Live from Times Square in New York City, it's theCUBE, covering IBM's Change the Game, winning with AI, brought to you by IBM. Hello everybody, welcome back to theCUBE's special presentation. We're covering IBM's announcement, changing the game, winning with AI is the theme of IBM's event. IBM has these customer meetups, analyst meetups, partner meetups, and they do this in conjunction with Strata every year. And theCUBE has been there covering, I'm Dave Vellante, with us is James Wade, who's the director of application hosting at Guidewell, and Heymanth Manda, who's the director of platform offerings at IBM. Gentlemen, welcome to theCUBE, thanks for coming on. Thank you. Heymanth, let's start with you. Platform offerings, a lot of platforms inside of IBM. What do you mean platform offerings? Which one are you responsible for? Yeah, so IBM's data and analytics portfolio is pretty wide, it covers the $6 billion business, and we have 100-plus products. What we're trying to do is we're trying to basically build a platform through IBM Cloud Private for Data, bring capabilities that cuts across our portfolio, and build upon it. We also make it open, support multiple clouds, and support other partners who wants to run on the platform, so that's what I'm leading. Okay, great, and we'll come back and talk about that. But James, tell us more about Guidewell, where are you guys based, what do you do and what's your role? Guidewell is the largest insurer in the state of Florida. We have about six and a half million members. We also do about 38, 39% of the government processing for Medicare, Medicare, Medicaid claims. Very large payer. We've also recently moved into another provider space. We actually have clinics throughout the state of Florida where our members can go in and actually get services there. So we're actually morphing as a company, away from just an insurance company, really to a healthcare company. Very exciting time to be there. We've doubled in size in the last six years from a $6 billion company to, I mean from an $8 billion company to an $18 billion company. So both health insurer and provider bringing those two worlds together and the thinking there is just more efficient. You'd be able to drive efficiencies obviously out of your business, right? Yes, I mean the ultimate goal for us is to just have better health outcomes for our members. And the way you deliver that is, one, you do the insurance right, you do it well, you make sure that their claims are processed and handled properly that they're getting all the services that they need. But two, from a provider space, how do you take the information that you have about your members and use it in a provider space to make sure they're getting the right prescriptions at the right time for the right situations that they're having, whatever's going on in their life. And keeping costs down. I mean there's a lot of finger pointing in the industry. If you bring those two areas together, now we got a single throat to choke. That's right, we get that too.  Okay, and you're responsible for the entire application portfolio across the insurance and the clinical side as well. Yes, I have both sides. I mean we have Guidewell as the holding company, we have multiple companies underneath it. So all those companies roll up into a single kind of IT infrastructure and I manage that for the entire company. Okay, and talk about the big drivers in your business. Obviously on the insurance side, it's the claim system, the lifeblood, the agency system to deal with the channel. Now of course you've got the clinical thing to worry about. But so talk about sort of the drivers of your business and what's changing. Right, I mean the biggest change we've had obviously in the last few years has been the Affordable Care Act. It changed the way that from a group policy where if you're a big corporation and you work for a big corporation, that company actually buys insurance for you and provides it to other employees. Well now the individual market has grown significantly. We're still a group policy insurance company. Don't get me wrong, we have a great portfolio of companies that we work with. But we also now sell directly to individuals. So they're in the consumer space directly. And that's just a different way of interacting with folks. You have to have sales sites. You have to have websites that are up where folks can come and browse your products. You have to interface with government websites like CMS has their site where they set up and you're able to buy products through that. So it's really changed our marketing and sales channels completely. And on the backside, the volume of growth. With the new individual insurance market, we've grown in size significantly on a number of members. And that's really stressed our IT systems. It's stressed our database environment. And it's really stressed our ability to analyze the day that we're doing and make sure that we're processing claims efficiently and making sure that the members are getting what they expect from it. So the velocity and change in size is really stressed. So you've got the Affordable Care Act and some uncertainties around that. The regulations around that. You've got things like EMR and meaningful use that you've got to worry about. So a lot of complexity in the application portfolio. And hey, Matt, I imagine this is not a unique discussion that you have with some of your insurance clients and healthcare folks.  But your thoughts on what you're seeing in the marketplace. Yeah, so I mean, this is not unique because the data is exploding. And there are multiple data sources spread across multiple clouds. So in terms of trying to get a sense of where the data is, how to actually start leveraging it, how to govern it, how to analyze it, is a problem that is across all industry verticals. And especially as we are going through digital transformation, right? Trying to leverage and monetize your data becomes even more important. So yeah, so, well, let's talk a little bit about the data. So your data, like a lot of companies, you must have a lot of data silos. And we have said on theCUBE a lot that the innovation engine in the future is data applying machine intelligence to that data using cloud models. Whether that cloud is in a private cloud or a public cloud or now even at the edge. But having a cloud like experience for scale and agility is critical. So that seems to be the innovation whereas last 20, 30 years, the innovation has been kind of Moore's law and being able to get the latest and greatest system so I can get data out of my data warehouse faster. So changing in the innovation engine, driven by data, what are you seeing? I mean, absolutely. Again, we go back to the mission of the company. It's to provide better health outcomes for our members, right? And IT and using the data that we collect more effectively and efficiently allows us to do that.  They have no idea what your other doctor's doing with you unless you tell them and a lot of people forget. So just as an example, we would know as the payer what you've been prescribed, what you've been using for multiple years. If we see something using AI and machine learning that you've just been prescribed, it's gonna have a detrimental impact to something else that you're doing, we can alert you. We can send you SMS messages. We can send you emails. We can alert your doctors just to say, hey, this could be a problem and it could cause a prescription collision and you can end up in the hospital or worse. And that's just one example of the things that we look at every day to try to better the outcome for our members. But that's just the first layer. What else can you do with that? Are there predictive medicines? Are there things we can alert your doctors to that we're seeing from other places or populations that kind of match your current, kind of what you look like, what you do, what you think, what you're using? All the information we have about you, can we predict health outcomes down the future and let your doctors know? So exciting time to be in this industry. Let's talk about the application architecture to support that outcome because you're not starting from a green field. You probably get some cobalt running and it works and you mess with that stuff. And traditionally you built, especially in a regulated industry, you're building applications that are hardened. And as I said, you have this data silo that really, it's like, it works, don't touch it. How much of a challenge is it for you to enter this sort of new era and how are you getting there? I'd like to understand IBM's role as well. Well, it's very challenging, number one. You have your, I don't wanna call it legacy because that makes it sound bad, but you do have your legacy environments where we're collecting the information. It's kinda like the silos that have gathered the information, the sales information, the claims information, that type of stuff. But those may not be the best systems currently to actually do the process and the data analysis and having the machine learning run against it. So we have really complex ETL moving data from our legacy environments into these newer open source models that you guys support with IBM Cloud private for data. But basically, moving into these open source areas where we can kind of focus our tools on it and learn from that data. So having your legacy environment and moving it to the new environment where you can do this process and has been a challenge. I mean, the velocity of change in the new environment, the types of databases that are out there with Hadoop and the products that you guys have that run through the information, that's one of the bigger challenges that we have. Our company is very supportive of IT. They give us plenty of budget. They give us plenty of resources. But even all the support that we get, the velocity of change in the new environment and the AI space and the machine learning is very difficult to keep up with. Yeah, and you can't just stop doing what you're doing in the existing environment. You've still got to make changes to this. You've got regulatory, you've got HIPAA stuff that you've got to deal with. So you can't just freeze your code there. So are things like containers and cloud native techniques coming into play? Absolutely, absolutely. We're developing all, we kind of drew a line in the sand. Our CIO about two years ago, it's a line in the sand. Everything that we developed now is in a cloud-first strategy. That doesn't necessarily mean it's going to go into the external cloud. We have an internal cloud that we have. We have a very large power environment at Guidewell. Our mainframe is still sort of a cloud-like infrastructure. So we developed it to be cloud-native, cloud-first. And then if it more than likely stays in our four walls, but there's also the option that we can move it out, to various clouds that are out there. There's an IBM cloud, Amazon, Microsoft, Google, any of those clouds. So we're developing with a cloud-first strategy, all the new things. Now, like you said, the legacy side, we have to maintain. I mean, still the majority of our business is processing claims for our members, right? And that's still in that kind of legacy environment, runs on the mainframe and the power environment today. So we have to keep it up and run as well. How large of an organization are you? Headcount-wise? We have about 2,100 IT people at Guidewell, probably a 17,000 person organization. So there's a significant percentage of the population of our employees that are IT directly. I was at a, right, it was an IT heavy business, always has been, I was at a conference recently and they threw out a stat that the average organization has eight clouds. And I said, we're like a 60-person company and we have eight clouds.  But you mentioned a number of other clouds, you mentioned IBM Cloud and some others. So it's a multi-cloud world, right? Okay, so I'm interested in how IBM is approaching that, right? You're not just saying, okay, IBM Cloud or nothing, I think, and Cloud is defined on-prem, off-prem, maybe now at the edge, your thoughts? Yeah, so absolutely, I think that is our strategy. We would like to support all the clouds out there. We don't want to discriminate one versus the other. We do have our own public cloud, but what our strategy is to support our products and platforms on any cloud. For example, IBM Cloud Private for Data, it can run in the data center, it can provide the benefits of the cloud within your firewall, but if you want to deploy it on any other public cloud infrastructure, such as Amazon or Red Hat OpenStack, we do support it. We're also looking to expand that support to Microsoft and Google in the future. So we're going forward with a multi-cloud strategy. Also, if you look at IBM's strength, right, we have significant on-premise business, right? That's our strength. So we want to basically start with enterprise out. So by focusing on private cloud and making sure that customers can actually move their offerings and products to private cloud, we are essentially providing a path for our customers and clients to move to cloud, embrace cloud, so that's been our approach. So James, I'm interested in how you guys look at cloud first. When you say cloud first, first of all, I'm hearing, it's not about where it goes, it's about the experience. So we're going to bring the cloud model to the data, wherever the data lives. It's in the public cloud, of course it's cloud. If we bring it on-prem, we want a cloud-like experience. How do you guys look at that cloud-like experience? Is it utility pricing? Is it defined in sort of agility terms? Maybe you could collaborate. Actually, we're trying to go with the agility piece first. The hardest thing right now is to keep up with the pace that customers demand. My boss, Paul Stallings, always talks about consumer grade is now the industrial strength. You go home at night, your network at home is very fast to your PC at night. Your phone, you just hit an app, you always expect it to work. Well, we have to be able to provide that same level of support and reliability in the applications we're deploying inside of our infrastructure. So to do that, you have to be fast, you have to be agile. And our cloud would first be, how do you get things to market faster? So you can build your servers faster, build out your networks faster, build your databases faster, already have defined sizes. Click a button and it's there. On-demand infrastructure, much like they do in the public cloud. We want to have that internally. But second, and our finance department will tell you, is the most important is the utility piece. Once you can define these individual modules that you can hit a button and immediately spin up and instantiate, you should be able to figure out what that cost the company. How do you define what a server cost, total cost of ownership through the lifetime that server is for the company? Because if we can lower that cost, if we can do these things very well, automate them, get the data where it needs to be, spin up quickly, we can reduce our administrative cost and then pass those savings right back to our members. If we can find a way to save your grandmother $20 a month off for health insurance, that can make a lot of difference in a person's life. Just by cutting our cost on the IT side, we can deliver savings back to the company. And that's very key to us. And in terms of sort of what goes where, I guess it's a function of the physics, there's latencies involved, the economics, as you mentioned, are critical obviously in your business. And I guess the laws, the edicts of the government. Yes, and the various contracts that you sign with companies. I mean, there's some companies that we deal with the state of Florida that want their data to stay in the state of Florida. Well, if you move it out to a various cloud provider, you don't know which data center that it's in, so you have to go, there's the laws, the regulations based on your contracts, but you're exactly right. What have you signed up for? What have you agreed to? What are your members comfortable with as to where the data can actually go? And does, how does IBM help guide well in other companies to manage through that complexity? Yeah, absolutely. So I think we are, in addition to what James mentioned, it's also about agility, because for example, if you look at insurance applications, there's a specific time period where you probably would expect 10x a load. So you should be able to easily scale up and down, and also as you're changing your business model, if you have new laws, or if you want to go after new businesses, you should be able to easily embrace that. So cloud provides you that flexibility and elasticity and also the agility. So that's one. The other thing that you mentioned about around regulation, especially in healthcare and also through with financial services industry. So what we're trying to do is on our platform, we would like to actually have industry-specific accelerators. We've been working with the Fortune-Finded companies for the last 30, 40 years. So we've gained depth of knowledge that we currently have within our company, so which we want to basically start exposing as accelerators, and this is on our roadmap and will be available fairly quickly. So that's one approach we're taking. The other approach we're taking is we're also working with our business partners and technology partners, because we do believe in today's world, you cannot go after an opportunity all by yourself. You need to build an ecosystem, and that's what we're doing. We're trying to work with basically speciality vendors who might be focused on that particular vertical who can bring the depth and knowledge that we might not be having, and work with them and team up so that they can build their solutions on top of the platform. So that's another approach that we're taking. So I always ask this question of customers, why IBM?  You understand our systems, you understand what we do, when we do it, why we do it, you understand our business cycle. IBM really invest in the customers and understanding what they're doing, what they need to be done, and quite honestly, you guys bring some ideas to the table we haven't even thought of. You have such a breadth of understanding you're dealing with so many other companies, you'll see things out there that could be a nugget that we could use, and IBM's never shy to bring that to us. Just a history and a legacy of really bringing innovative solutions to us to really help our business. And very few companies out there really get to know a company's business as well as IBM does. Hey Matt, I'll give you the last word. We got to change the game, winning with AI tonight. You go to ibm.com slash win with AI and register there. I just did, I'm part of the analyst program. So, hey Matt, last word for you. Yeah, so I think the world is changing really fast and unless enterprises embrace cloud and embrace artificial intelligence and leverage their data to monetize new business models, it's very hard to compete. Like, digital transformation is impacting every industry vertical, including IBM. So, I think going after this opportunistically is critical and IBM Cloud Private for Data as a platform provides us. And please, please join us today. It's going to be a great event and I look forward to meeting you guys. Thank you. And definitely agree, it's all about digital means data, applying machine intelligence, machine learning AI to that data, being able to run it in a cloud-like model so you can scale, you can be fast. That's the innovation sandwich for the future. It's not just about the speed of the processor or the size of the disk drive or the flash or whatever it is. It's really about that combination. theCUBE, bringing you all the intelligence we can find. You're watching CUBE NYC. We'll be right back, right after this short break.


One of the more complete wide receivers in this year's draft class is AJ Brown. He can play both in the slot and on the outside. He was the most productive wide receiver on Ole Miss last season despite playing with two other wide receiver prospects and DK Metcalf and DeMarcus Lodge. And according to Pro Football Focus, he ranked in the top 15 last season in yards per route run. Putting that together with his above average combine measureables in a 6 foot 226 pound frame, you've got yourself a well-rounded prospect who has the chance to be special in the NFL. Given his versatility in build, he reminds me a bit of Juju Smith Schuster. He really does have the potential to be the best receiver in this year's class.